big load of game logic