                 oldController.view.removeFromSuperview()
                 oldController.removeFromParentViewController()
             }
+
             guard let drawerViewController = drawerViewController else { return }
-            let viewDictionary      = ["drawerView" : drawerViewController.view]
+            addChildViewController(drawerViewController)
+
+            drawerViewController.view.layer.shadowColor   = UIColor.blackColor().CGColor
+            drawerViewController.view.layer.shadowOpacity = 0.4
+            drawerViewController.view.layer.shadowRadius  = 5.0
+            drawerViewController.view.translatesAutoresizingMaskIntoConstraints = false
+            _containerView.addSubview(drawerViewController.view)
+
             let itemAttribute: NSLayoutAttribute
             let toItemAttribute: NSLayoutAttribute
             switch drawerDirection {

                itemAttribute   = .Left
                toItemAttribute = .Right
            }
            
            drawerViewController.view.layer.shadowColor   = UIColor.blackColor().CGColor
            drawerViewController.view.layer.shadowOpacity = 0.4
            drawerViewController.view.layer.shadowRadius  = 5.0
            drawerViewController.view.translatesAutoresizingMaskIntoConstraints = false
            addChildViewController(drawerViewController)
            _containerView.addSubview(drawerViewController.view)
            _drawerWidthConstraint = NSLayoutConstraint(
                item: drawerViewController.view,
                attribute: NSLayoutAttribute.Width,

                constant: 0
            )
            _containerView.addConstraint(_drawerConstraint)

            let viewDictionary = ["drawerView" : drawerViewController.view]
            _containerView.addConstraints(
                NSLayoutConstraint.constraintsWithVisualFormat(
                    "V:|-0-[drawerView]-0-|",
