public static State requestNewState(States state) {
        // if no nextState is given, set to null
        if (state == null)
            return (nextState = null);
        
        // set nextState to a new instance of the selected State
        switch(state) {
            case MAIN_MENU:
                Logger.log("Transition to Main Menu");
                return (nextState = new MainMenu());
            case GAME:
                Logger.log("Transition to Game");
                return (nextState = new Game());
            case EDITOR:
                Logger.log("Transition to Editor");
                return (nextState = new Editor());
            case SCORES:
                Logger.log("Transition to High Scores");
                return (nextState = new Scores());
            default:
                Logger.error("Requested unknown State!");
                return (nextState = null);
        }
    }