       alpha = 0
       toAlpha = 1
       transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
-      animateIn(x: 0, y: 0, scaleX: scale / 2, scaleY: scale / 2, alpha: toAlpha, configuration: configuration, completion: completion)
+      animateIn(animationValues: AnimationValues(x: 0, y: 0, scaleX: scale / 2, scaleY: scale / 2), alpha: toAlpha, configuration: configuration, completion: completion)
     case .in:
       let scale = 2 * configuration.force
       alpha = 0
       toAlpha = 1
-      animateIn(x: 0, y: 0, scaleX: scale, scaleY: scale, alpha: toAlpha, configuration: configuration, completion: completion)
+      animateIn(animationValues: AnimationValues(x: 0, y: 0, scaleX: scale, scaleY: scale), alpha: toAlpha, configuration: configuration, completion: completion)
     case .out:
       let scale = (invert ? 0.1 :  2) * configuration.force
       alpha = 1
       toAlpha = 0
-      animateOut(x: 0, y: 0, scaleX: scale, scaleY: scale, alpha: toAlpha, configuration: configuration, completion: completion)
+      animateOut(animationValues: AnimationValues(x: 0, y: 0, scaleX: scale, scaleY: scale), alpha: toAlpha, configuration: configuration, completion: completion)
     }
   }
 

    let values = computeValues(way: way, direction: direction, configuration: configuration, shouldScale: true)
    switch way {
    case .in:
      animateIn(x: values.x, y: values.y, scaleX: values.scaleX, scaleY: values.scaleY, alpha: 1, configuration: configuration, completion: completion)
    case .out:
      animateOut(x: values.x, y: values.y, scaleX: values.scaleX, scaleY: values.scaleY, alpha: 1, configuration: configuration, completion: completion)
    }
  }


    switch way {
    case .in:
      alpha = 0
      animateIn(animationValues: values, alpha: 1, configuration: configuration, completion: completion)
    case .out:
      animateOut(animationValues: values, alpha: 0, configuration: configuration, completion: completion)
    }
  }

