 		
 		// if animation doesn't repeat forever, cap elapsed time to endTime
 		if !repeatForever {
-			elapsed = min(elapsed, endTime)
+			elapsed = min(elapsed, (delay + endTime))
 		}
 		
 		// check for callbacks

		updateBlock?(self)
		
		// make sure we don't consider timeline done if we currently don't have any tweens playing
		done = (elapsed <= delay || elapsed >= endTime)
		if done {
			return completed()
		}

	
	public func stagger(offset: CFTimeInterval) -> Timeline {
		for (idx, tween) in tweens.enumerate() {
			tween.startTime = tween.delay + offset * CFTimeInterval(idx)
		}
		return self
	}
