game logic almost