Refactored and passing back gamestate on update