         }
 
         /// Executes all targets on a specific gesture recognizer
-        @discardableResult public func execute() -> Action {
+        @discardableResult public func execute(_ recognizer: UIGestureRecognizer) -> Action {
             let targetsInfo = element.spec.action.getTargetInfo()
             for info in targetsInfo {
-                info.target.performSelector(onMainThread: info.action, with: nil, waitUntilDone: true)
+                info.target.performSelector(onMainThread: info.action, with: recognizer, waitUntilDone: true)
             }
             return self
         }
-
-    }
+     }
 
 #endif

                if recognizer.minimumPressDuration <= minimumPressDuration &&
                    recognizer.numberOfTapsRequired == taps &&
                    recognizer.numberOfTouchesRequired == touches {
                    recognizer.spec.action.execute()
                }
            }
            return self

            }
            let recognizers = element.spec.find.all(gestureRecognizersOfType: UISwipeGestureRecognizer.self)
            for recognizer in recognizers where recognizer.direction == direction {
                recognizer.spec.action.execute(recognizer)
            }

            return self
