      */
     func complete(after: TimeInterval, isFinished: Bool) {
         guard isTransitioning else {
-            fatalError()
+            return
         }
         
         if after <= 0.001 {

        }
        
        let v = (isFinished ? elapsedTime : 1 - elapsedTime) * totalDuration
        self.isFinished = isFinished
        self.currentAnimationDuration = after + v
        self.beginTime = CACurrentMediaTime() - v
    }
    
    /**

    */
    func complete(isFinished: Bool) {
        defer {
            animators?.forEach {
                $0.clean()
            }
