now handles evaluateDuration