main
game logic
pre