use requestAnimationFrame instead of setTimeout
introduced some radomness
prevent the movers from staying offscreen