 			return completed()
 		}
 		return false
+	}
+	
+	@discardableResult
+	override func completed() -> Bool {
+		let done = super.completed()
+		
+		if done {
+//			state = .completed
+			kill()
+		}
+		
+		return done
 	}
 	
 	// MARK: Private Methods

		if !repeatForever {
			elapsed = min(elapsed, (delay + endTime))
		}
//		print("timeline.advance() - time: \(time), multiplier: \(multiplier), elapsed: \(elapsed), endTime: \(endTime), delay: \(delay), reversed: \(reversed)")
		
		// check for callbacks
		if callbacks.count > 0 {

			}
		}
		
		if elapsed < (delay + repeatDelay) {
			if reversed {
				return completed()
