changed a lot to exchange gamestate ;)