rAF instead of setTimeout