GameController refactor