modernize submodules
use requestAnimationFrame