change from webkitRequestAnimationFrame