             oldValue?.view.removeFromSuperview()
             if (self.isViewLoaded()) {
                 self.insertContentView()
-            }
-        }
-    }
-    
-    //MARK: Interface
-    func openMenu(animated: Bool) {
-        self.scrollableView?.setContentOffset(CGPoint(x: 0.0, y: self.scrollableView!.contentOffset.y), animated: animated);
-    }
-    
-    func closeMenu(animated: Bool) {
-        self.scrollableView?.setContentOffset(CGPoint(x: self.menuViewController!.view.bounds.size.width, y: self.scrollableView!.contentOffset.y), animated: animated);
-    }
-    
-    func toggleMenu(animated: Bool) {
-        if (self.scrollableView != nil) {
-            if (self.currentPercentOfAnimation == 0.0) {
-                self.closeMenu(animated)
-            } else {
-                self.openMenu(animated)
             }
         }
     }

        let contentViewWidth: CGFloat = self.view.bounds.size.width
        let contentViewHeight: CGFloat = self.view.bounds.size.height
        let menuViewWidth: CGFloat = self.menuViewWidthCalculationClosure(sideMenuControllerWidth: self.view.bounds.size.width)
        let menuViewHeight: CGFloat = self.view.bounds.size.height
        
        let currentContentOffsetX = self.currentPercentOfAnimation * menuViewWidth
        
        let lowerMenuViewXPosition: CGFloat = 0.0
        let upperMenuViewXPosition: CGFloat = menuViewWidth * 0.5
        let menuViewX = lowerMenuViewXPosition + (upperMenuViewXPosition - lowerMenuViewXPosition) * self.currentPercentOfAnimation
        
        self.menuViewController?.view.frame = CGRectMake(menuViewX, 0.0, menuViewWidth, menuViewHeight)
        self.contentViewController?.view.frame = CGRectMake(menuViewWidth, 0.0, contentViewWidth, contentViewHeight)
        
        self.scrollableView?.contentSize = CGSizeMake(menuViewWidth * 2, self.view.bounds.size.height)
        self.scrollableView?.contentOffset = CGPointMake(currentContentOffsetX, 0.0)
        self.scrollableView?.frame = CGRectMake(0, 0, menuViewWidth, self.view.bounds.size.height)
        
        self.performAnimation(self.currentPercentOfAnimation)
    }
    
    private func performAnimation(percentOfAnimation: CGFloat) {

        self.performLayout()
    }
    
    private func insertRightMenuView() {
        if (self.rightMenuViewController == nil) {
            return
        }
        if (contains(self.scrollableView!.subviews as [UIView], self.rightMenuViewController!.view)) {
            return
        }
        self.rightMenuViewController!.view.autoresizingMask = UIViewAutoresizing.None
        self.rightMenuViewController!.view.layer.shouldRasterize = true
        self.rightMenuViewController!.view.layer.rasterizationScale = UIScreen.mainScreen().scale
        self.addChildViewController(self.rightMenuViewController!)
        self.scrollableView!.addSubview(self.rightMenuViewController!.view)
        //        self.scrollableView!.sendSubviewToBack(self.rightMenuViewController!.view)
        self.performLayout()
    }
    
    
    
    private func insertContentView() {
        if (self.contentViewController == nil) {
            return
