refactoring, added GameController