Everything works pretty well, some cleanup of game loop could be nice.