game logic finalised