Now using variable timestep and requestAnimationFrame