     private var shouldComplete = false
     
     // Mark: - Init
-    init(presentedViewController: UIViewController, presentingViewController: UIViewController?, and configureModel: UNDSideSlideTransitioningConfigModel) {
+    init(presentedViewController: UIViewController, presentingViewController: UIViewController?, and configureModel: UNDSideSlideTransitioningConfigModel?) {
         self.configureModel = configureModel
         super.init(presentedViewController: presentedViewController, presenting: presentingViewController)
-        self.dimmingView = self.setUpDimmingView(with: self.configureModel.maskEffect)
-        if self.configureModel.couldDragPresentedView {
-            let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.onDrag(_:)))
-            presentedViewController.view.addGestureRecognizer(panGestureRecognizer)
-        }
-        if self.configureModel.shouldDismissWhileClickBackground {
-            let dismissTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.onTapBackground(_:)))
-            self.dimmingView.addGestureRecognizer(dismissTapGestureRecognizer)
+        if let unWrappedConfigureModel = self.configureModel {
+            self.dimmingView = self.setUpDimmingView(with: unWrappedConfigureModel.maskEffect)
+            if unWrappedConfigureModel.couldDragPresentedView {
+                let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.onDrag(_:)))
+                presentedViewController.view.addGestureRecognizer(panGestureRecognizer)
+            }
+            if unWrappedConfigureModel.shouldDismissWhileClickBackground {
+                let dismissTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.onTapBackground(_:)))
+                self.dimmingView.addGestureRecognizer(dismissTapGestureRecognizer)
+            }
         }
     }
     

        switch gestureRecognizer.state {
        case .began: break
        case .changed:
            if self.configureModel.couldDragInUpDirection || translation.y > 0 {
                self.presentedView?.transform = CGAffineTransform(translationX: 0, y: translation.y)
            }
            if let unWrappedContainerView = self.containerView {

    // Mark: - UIPresentationController
    override var frameOfPresentedViewInContainerView: CGRect {
        if let unWrappedContainerView = self.containerView {
            if let unWrappedConfigureModel = self.configureModel {
                return CGRect(origin: unWrappedConfigureModel.preferredOriginPoint(from: unWrappedContainerView)
                              , size: unWrappedConfigureModel.preferredSize)
            } else {
                return unWrappedContainerView.bounds
            }
        } else {
            return CGRect.zero
        }
