'Hand' is a 'namespace' but is used like a 'type'

Hello. I am an at home developer trying to develop for Leap Motion with Unity. I have all the scripting done but constantly run into an error message saying "‘Hand’ is a ‘namespace’ but is used like a ‘type’ ".(Problem is “public class HandEvent : UnityEvent { }”
) :

using Leap.Unity.Query;
using UnityEngine.Events;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Hand {
	public class LoPoly_Hands_Seperate{
	}
}
namespace Finger {
	public class LoPoly_Hands_Seperate{
	}
}
namespace Leap.Unity {

  public static class Hands {

    private static LeapServiceProvider s_provider;
    private static GameObject s_leapRig;

    static Hands() {
      InitStatic();
      SceneManager.activeSceneChanged += InitStaticOnNewScene;
    }

    private static void InitStaticOnNewScene(Scene unused, Scene unused2) {
      InitStatic();
    }
    private static void InitStatic() {
      s_provider = GameObject.FindObjectOfType<LeapServiceProvider>();
      if (s_provider == null) return;
      Camera providerCamera = s_provider.GetComponentInParent<Camera>();
      if (providerCamera == null) return;
      if (providerCamera.transform.parent == null) return;
      s_leapRig = providerCamera.transform.parent.gameObject;
    }

    /// <summary>
    /// Static convenience accessor for the Leap camera rig. This is the parent
    /// of the Camera that contains a LeapServiceProvider in one of its children,
    /// or null if there is no such GameObject.
    /// </summary>
    public static GameObject Rig {
      get {
        if (s_leapRig == null) {
          InitStatic();
          if (s_leapRig == null) {
            Debug.LogWarning("Camera has no parent; Rig will return null.");
          }
        }
        return s_leapRig;
      }
    }

    /// <summary>
    /// Static convenience accessor for the LeapServiceProvider.
    /// </summary>
    public static LeapServiceProvider Provider {
      get {
        if (s_provider == null) {
          InitStatic();
          if (s_provider == null) {
            Debug.LogWarning("No LeapServiceProvider found in the scene.");
          }
        }
        return s_provider;
      }
    }

    [System.Serializable]
    public class HandEvent : UnityEvent<Hand> { }

    /// <summary>
    /// Returns the first hand of the argument Chirality in the current frame,
    /// otherwise returns null if no such hand is found.
    /// </summary>

You have named your class Hands not Hand. However your “Hands” class is a static class. A static class can’t be used as type for a UnityEvent.

So use “Hands” and make the Hands class non.static

[System.Serializable]
public class HandEvent : UnityEvent<Hands> { }

However it’s hard to tell what this class should actually do and why you need a UnityEvent that takes a “Hands” instance when you initially make your class static.