basic game logic works