separated gameUpdate from gameRender