broke down gameloop