         
         let duration = animated ? options.animationDuration : 0
         UIView.animateWithDuration(duration, animations: {
-            [unowned self] () -> Void in
-            self.pagingViewController.positionMenuController()
+            () -> Void in
+            pagingViewController.positionMenuController()
             }) { [weak self] (_) -> Void in
                 guard let _ = self else { return }
                 
-                self!.pagingViewController.relayoutPagingViewControllers()
+                pagingViewController.relayoutPagingViewControllers()
                 
                 // show paging views
                 self!.showPagingMenuControllers()

        let page: Int
        switch (currentPagingViewPosition, options.componentType) {
        case (.Left, .PagingController): page = previousPage
        case (.Left, _): page = menuView.previousPage
        case (.Right, .PagingController): page = nextPage
        case (.Right, _): page = menuView.nextPage
        default: page = pagingViewController.currentPage
        }
        
        return page
    }
    
    var nextPageFromCurrentPoint: Int {
        let point = CGPointMake(menuView.contentOffset.x + menuView.frame.width / 2, 0)
        for (index, menuItemView) in menuView.menuItemViews.enumerate() {
            guard CGRectContainsPoint(menuItemView.frame, point) else { continue }

        }
        
        pagingViewController = PagingViewController(viewControllers: viewControllers, options: options)
    }

    private func layoutPagingViewController() {
        guard let pagingViewController = pagingViewController else { return }
        let viewsDictionary: [String: UIView]
        switch options.componentType {
        case .PagingController:
            viewsDictionary = ["pagingView": pagingViewController.view]
        default:
            guard let menuView = menuView else { return }
            viewsDictionary = ["menuView": menuView, "pagingView": pagingViewController.view]
        }

