improved abstraction for GameWorld and Program