add cancelAnimationFrame