Separate update from render loops