incorporated requestAnimationFrame