completely functional game, not yet refactored