             currentViewController.removeFromParentViewController()
             currentViewController.view.removeFromSuperview()
             currentViewController.didMoveToParentViewController(nil)
+            removeBehavioursForCurrentController()
         }
         
         currentViewController = delegate.viewControllerAtIndex(index)

            self.presentingViewController?.dismissModalViewControllerAnimated(true)
        }
    }
}

            addChildViewController(currentViewController)
            view.addSubview(currentViewController.view)
            currentViewController.didMoveToParentViewController(self)
            addBehavioursToCurrentController()
        }
        
        index++
    }
    
    func removeBehavioursForCurrentController() {
        animator.removeBehavior(snapBehaviour)
        snapBehaviour = nil
        animator.removeBehavior(pushBehaviour)
        pushBehaviour = nil
    }
    
    func addBehavioursToCurrentController() {
        if let currentViewController = currentViewController {
            snapBehaviour = UISnapBehavior(item: currentViewController.view, snapToPoint: self.view.center)
            animator.addBehavior(snapBehaviour)
            
            pushBehaviour = UIPushBehavior(items: [currentViewController.view], mode: .Instantaneous)
            pushBehaviour!.magnitude = 0
            pushBehaviour!.angle = 0
            animator.addBehavior(pushBehaviour)
            
            currentViewController.view.addGestureRecognizer(panRecognizer)
        }
    }
    
    func checkForLastViewController() {
