public override void HandleInput()
        {
            if (IsActive)
            {
                switch (mode)
                {
                case MainGameScreenMode.Open:
                    break;

                case MainGameScreenMode.Closed:
                    if (isStorageMessageDisplayed)
                    {
                        if (InputManager.IsActionTriggered(InputManager.Action.Ok))
                        {
                            mode = MainGameScreenMode.DelayOpening;
                            AudioManager.PlayCue("doorOpen");
                            AudioManager.PlayMusic("bgCogsTurning");
                        }
                        else if (InputManager.IsActionTriggered(InputManager.Action.ExitGame))
                        {
                            ExitGame(true);
                        }
                    }
                    break;

                case MainGameScreenMode.Opening:
                    break;

                case MainGameScreenMode.SlotPanel:
                    // move these backs into slotPanel and pickerPanel
                    if (InputManager.IsActionTriggered(InputManager.Action.Back))
                    {
                        helpPanel.Off(true);
                        mode = MainGameScreenMode.Closing;
                        AudioManager.PlayCue("doorClose");
                        slotPanel.Close();

                        return;
                    }
                    slotPanel.HandleInput();
                    break;

                case MainGameScreenMode.PickerPanel:
                    if (InputManager.IsActionTriggered(InputManager.Action.Back))
                    {
                        ShowConfirmEndSession();
                        return;
                    }
                    pickerPanel.HandleInput();
                    break;

                case MainGameScreenMode.PuzzlePanel:
                    if (puzzlePanel.PanelState == PuzzlePanel.PuzzlePanelState.Running &&
                        InputManager.IsActionTriggered(InputManager.Action.Pause))
                    {
                        PausePuzzlePanel();
                    }
                    else
                    {
                        puzzlePanel.HandleInput();
                    }
                    break;

                case MainGameScreenMode.CreditsPanel:

                    break;

                case MainGameScreenMode.Paused:
                    if (InputManager.IsActionTriggered(InputManager.Action.Pause))
                    {
                        pauseMode = PauseMode.Stopping;
                    }

                    break;

                case MainGameScreenMode.Closing:
                    break;

                case MainGameScreenMode.Exiting:
                    break;
                }
            }
        }