         // prevent any other menu gestures from firing
         containerView?.isUserInteractionEnabled = false
         if presenting {
-            presentationController.presentationTransitionWillBegin()
-        } else {
-            presentationController.dismissalTransitionWillBegin()
+            presentationController?.presentationTransitionWillBegin()
+        } else {
+            presentationController?.dismissalTransitionWillBegin()
         }
     }
 
     func transition(presenting: Bool) {
         if presenting {
-            presentationController.presentationTransition()
-        } else {
-            presentationController.dismissalTransition()
+            presentationController?.presentationTransition()
+        } else {
+            presentationController?.dismissalTransition()
         }
     }
 
     func transitionDidEnd(presenting: Bool, completed: Bool) {
         if presenting {
-            presentationController.presentationTransitionDidEnd(completed)
-        } else {
-            presentationController.dismissalTransitionDidEnd(completed)
+            presentationController?.presentationTransitionDidEnd(completed)
+        } else {
+            presentationController?.dismissalTransitionDidEnd(completed)
         }
         containerView?.isUserInteractionEnabled = true
     }

    }

    func layout() {
        presentationController.containerViewWillLayoutSubviews()
    }
}


    private weak var containerView: UIView?
    private let leftSide: Bool
    private weak var originalSuperview: UIView?
    private var presentationController: SideMenuPresentationController?
    private unowned var presentedViewController: UIViewController?
    private unowned var presentingViewController: UIViewController?
    weak var delegate: SideMenuAnimationControllerDelegate?
