Some architectural changes: splitting into Update/Draw fro separation of updating and rendering. Putting events into an event queue in each frame so that individual gamestates don't need to call PollEvent