             transitionId: generatedTransitionId,
             transitionsHandler: navigationTransitionsHandler)
         
-        let resetContext = ForwardTransitionContext(
-            resetingWithViewController: viewController,
-            transitionsHandler: navigationTransitionsHandler,
-            animator: resetAnimator,
-            transitionId: generatedTransitionId)
-        
-        navigationTransitionsHandler.resetWithTransition(context: resetContext)
+        do {
+            let resetContext = ForwardTransitionContext(
+                resetingWithViewController: viewController,
+                transitionsHandler: navigationTransitionsHandler,
+                animator: resetAnimator,
+                transitionId: generatedTransitionId)
+            
+            navigationTransitionsHandler.resetWithTransition(context: resetContext)
+        }
         
         let popoverController = navigationController.wrappedInPopoverController()
-        
+    
         let popoverContext = ForwardTransitionContext(
             presentingViewController: viewController,
             inNavigationController: navigationController,

    {
        presentModalViewControllerDerivedFrom(
            closure,
            animator: NavigationTransitionsAnimator())
    }
    
    func presentModalViewControllerDerivedFrom(
        @noescape closure: (transitionId: TransitionId, transitionsHandler: TransitionsHandler) -> UIViewController,
        animator: TransitionsAnimator)
    {
        let navigationController = UINavigationController()
        let navigationTransitionsHandler = navigationController.wrappedInNavigationTransitionsHandler()
        
        let generatedTransitionId = transitionIdGenerator.generateNewTransitionId()

    func presentModalViewControllerDerivedFrom(
        @noescape closure: (transitionId: TransitionId, transitionsHandler: TransitionsHandler) -> UIViewController,
        animator: TransitionsAnimator)
    
    func presentModalViewControllerDerivedFrom(
        @noescape closure: (transitionId: TransitionId, transitionsHandler: TransitionsHandler) -> UIViewController,
        animator: TransitionsAnimator,
        navigationController: UINavigationController)

    func presentPopoverFromRect(
        rect: CGRect,
