requestAnimationFrame() instead setInterval()