Moved more logic into GameEngine