Refactoring GameStates and Controller