   
   private func modifyShapeLayerForTouch() {
     let path = pathBuilder.buildCurrentPath(inputData: pathInputData)
-    didDrag(gestureRecognizer.touchPoint(flexibility: settings.flexibility))
+    let progress = gestureRecognizer.currentProgress(flexibility: settings.flexibility) / gestureRecognizer.totalProgressSize
+    didDrag(progress)
     applyPath(path)
   }
   

  public var isEnabled: Bool = true
  public var didStartDragging: () -> Void = { }
  public var actionDidFire: () -> Void = { }
  public var didEndDragging: () -> Void = { }
  public var didDrag: (_ touchPoint: CGPoint) -> Void = { _ in }
  public var setupSettings: (Settings) -> Void = { _ in }
  public var infoView: UIView? {
    willSet {

      if shouldInitiateAction() {
        animateToFinalPosition()
      } else {
        actionDidCancel()
        animateToInitialPosition()
      }
    default: break
