using requestAnimationFrame now