     
     
     // MARK: - Gestures
-    private var presentationGesture: UIPanGestureRecognizer?
+    private let presentationGesture: UIPanGestureRecognizer
     
     var dismissalGesture: UIPanGestureRecognizer?
     

        self.presentedViewController = presentedViewController
        self.isPresenting = true
        self.isInteractive = false
        super.init()
        presentationGesture = UIPanGestureRecognizer(target: self, action: #selector(WMFTableOfContentsAnimator.handlePresentationGesture(_:)))
        presentationGesture?.maximumNumberOfTouches = 1
        presentationGesture?.delegate = self
        if let presentationGesture = presentationGesture {
            self.presentingViewController!.view.addGestureRecognizer(presentationGesture)
        }
    }
    
    deinit {
        removeDismissalGestureRecognizer()
        if let presentationGesture = presentationGesture {
            presentationGesture.removeTarget(self, action: #selector(WMFTableOfContentsAnimator.handlePresentationGesture(_:)))
            presentationGesture.view?.removeGestureRecognizer(presentationGesture)
        }
    }
    
    weak var presentingViewController: UIViewController?

                return false
            }
            
        } else if gestureRecognizer == self.presentationGesture {
            
            let translation = presentationGesture.translation(in: presentationGesture.view)
            let location = presentationGesture.location(in: presentationGesture.view)
