basics completed; TODO: main game logic