SteamVR Issues with Vive Controller Input: trying to call method from GetPressDown, however gives "Object reference not set to an instance of an object" error

Hi first time poster, I have tried several different methods to resolve this and have been stuck on it for days, when I use GetPressDown(SteamVR_Controller.ButtonMask.Trigger), (trigger is arbitrary) i get the error “Object reference not set to an instance of an object”.
Have tried several ways to fix it but cant any help would be greatly appreciated.
ControllerManager

private SteamVR_TrackedObject hand;
private SteamVR_Controller.Device device;
public DeckManager dm;
private bool response;
private bool match;
private bool userCorrect;

// Use this for initialization
void Start()
{
    hand = GetComponent<SteamVR_TrackedObject>();
}

// Update is called once per frame
void Update()
{
    
    if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))
    {
        response = true;
        Debug.Log("Trigger Pressed, player has picked " + response);
        IsPlayerCorrect();

    }

    if (device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))
    {
        response = false;
        Debug.Log("Touchpad Pressed, player has picked " + response);
        IsPlayerCorrect();
    }
}

Did you add the script to a controller?

Can also try changing your device initialization to be like this.

private SteamVR_Controller.Device device
{
    get { return SteamVR_Controller.Input((int)hand.index); }
}