Separate update and display. Display use requestAnimationFrame