       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)
     }
   }
 

    )
  }

 // swiftlint:disable function_parameter_count
  func animateIn(x: CGFloat, y: CGFloat, scaleX: CGFloat, scaleY: CGFloat, alpha: CGFloat, configuration: AnimationConfiguration, completion: AnimatableCompletion? = nil) {
    let translate = CGAffineTransform(translationX: x, y: y)
    let scale = CGAffineTransform(scaleX: scaleX, y: scaleY)
    let translateAndScale = translate.concatenating(scale)
    transform = translateAndScale


      scaleX = -1
      scaleY = 1
    }
    animateIn(animationValues: AnimationValues(x: 0, y: 0, scaleX: scaleX, scaleY: scaleY), alpha: 1, configuration: configuration, completion: completion)
  }

  func shake(repeatCount: Int, configuration: AnimationConfiguration, completion: AnimatableCompletion? = nil) {
