     // MARK: Configuration
     
     /// Minimum translation (in `initialDirection`) required for the gesture to finish. Defaults to `0.0`.
-    @IBInspectable var minimumTranslation: CGFloat = 0.0
+    @IBInspectable public var minimumTranslation: CGFloat = 0.0
     
     /// Minimum velocity (in `initialDirection`) required for the gesture to finish. Defaults to `0.0`.
-    @IBInspectable var minimumVelocity: CGFloat = 0.0
+    @IBInspectable public var minimumVelocity: CGFloat = 0.0
     
     // MARK: Internal variables
     
     /// The current location in `view` when the pan gesture recognizer begins. Defaults to `nil`. Resets to `nil` when `reset()` is called.
-    private(set) var initialLocation: CGPoint?
+    public private(set) var initialLocation: CGPoint?
     
     /// The current direction in `view` when the pan gesture recognizer begins. Defaults to `nil`. Resets to `nil` when `reset()` is called.
-    private(set) var initialDirection: Direction?
+    public private(set) var initialDirection: Direction?
     
     // MARK: Delegation
     
-    override var delegate: UIGestureRecognizerDelegate? {
+    public override var delegate: UIGestureRecognizerDelegate? {
         didSet {
             self.addTarget(self, action: "onPan")
         }
     }
     
-    private var directedPanDelegate: DirectedPanGestureRecognizerDelegate? {
+    internal var directedPanDelegate: DirectedPanGestureRecognizerDelegate? {
         return delegate as? DirectedPanGestureRecognizerDelegate
     }
     
     // MARK: Initialization
     
     /// Initialize the pan gesture recognizer with no target or action set.
-    convenience init() {
+    public convenience init() {
         self.init(target: nil, action: nil)
     }
     
     // MARK: Overrides
     
-    override func reset() {
+    public override func reset() {
         super.reset()
         
         initialLocation = nil


// MARK: - Directional helpers

extension DirectedPanGestureRecognizer {
    
    /**
     The pan gesture recognizer's current translation in `view`, simplified to a linear value in a given direction.

import UIKit.UIGestureRecognizerSubclass

/// Extension of `UIGestureRecognizerDelegate` which allows the delegate to receive messages when the pan gesture recognizer starts, updates, cancels, and finishes. The `delegate` property can be set to a class implementing `DirectedPanGestureRecognizerDelegate` and it will receive these messages.
@objc public protocol DirectedPanGestureRecognizerDelegate: UIGestureRecognizerDelegate {
    
    /// Called when the pan gesture recognizer starts.
    optional func directedPanGestureRecognizerDidStart(gestureRecognizer: DirectedPanGestureRecognizer)
