dont use requestAnimationFrame, slower on all tested platforms