     }
 
     func layout() {
-        presentationController.containerViewWillLayoutSubviews()
+        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?

        // prevent any other menu gestures from firing
        containerView?.isUserInteractionEnabled = false
        if presenting {
            presentationController?.presentationTransitionWillBegin()
        } else {
            presentationController?.dismissalTransitionWillBegin()
        }
    }

    func transition(presenting: Bool) {
        if presenting {
            presentationController?.presentationTransition()
        } else {
            presentationController?.dismissalTransition()
        }
    }

    func transitionDidEnd(presenting: Bool, completed: Bool) {
        if presenting {
            presentationController?.presentationTransitionDidEnd(completed)
        } else {
            presentationController?.dismissalTransitionDidEnd(completed)
        }
        containerView?.isUserInteractionEnabled = true
    }
