game class, game loop decoupled from game view controller