refactored LevelState to GameController and moved it to controller package