requestAnimFrame here instead?