Smoother timing using dispatch