         
         presenter.router = router
         
-        navigationRootsHolder.rootTransitionsHandler = tabTransitionsHandler
+        navigationRootsHolder.rootTransitionsHandler = tabBarTransitionsHandler
         
         return (tabBarController, presenter)
     }
 
-    private func createTabControllers(
+    func createTabControllers(
         sharedTransitionId sharedTransitionId: TransitionId,
         sharedTransitionsCoordinator: TransitionsCoordinator)
         ->  ([UIViewController], [TransitionsHandler])

            thirdTransitionsHandler.resetWithTransition(context: resetContext)
        }
        
        firstSplit.tabBarItem.title = "1"
        secondNavigation.tabBarItem.title = "2"
        thirdNavigation.tabBarItem.title = "3"

        let controllers = [firstSplit, secondNavigation, thirdNavigation]
        return (controllers, [firstSplitTransitionsHandler, secondTransitionsHandler, thirdTransitionsHandler])
    }
}

// MARK: - TransitionsGeneratorStorer
extension ApplicationAssemblyImpl: TransitionsGeneratorStorer {}
            
            thirdTransitionsHandler.resetWithTransition(context: resetContext)
        }

        thirdNavigation.tabBarItem.title = "3"
        
        return (thirdNavigation, thirdTransitionsHandler)
    }
}

// MARK: - iPad
private extension ApplicationAssemblyImpl {
    func createTabControllersIpad(
        sharedTransitionId sharedTransitionId: TransitionId,
        sharedTransitionsCoordinator: TransitionsCoordinator)
        -> (viewControllers: [UIViewController], transitionsHandlers: [TransitionsHandler])
    {
        let firstTab = createFirstTabControllerIpad(
            sharedTransitionId: sharedTransitionId,
            sharedTransitionsCoordinator: sharedTransitionsCoordinator
        )
        
        let secondTab = createSecondTabControllerIpad(
            sharedTransitionId: sharedTransitionId,
            sharedTransitionsCoordinator: sharedTransitionsCoordinator
        )
        
        let thirdTab = createThirdTabControllerIpad(
            sharedTransitionId: sharedTransitionId,
            sharedTransitionsCoordinator: sharedTransitionsCoordinator
        )
        
        let controllers = [firstTab.viewController, secondTab.viewController, thirdTab.viewController]
        
        let result = (
            controllers,
            [firstTab.transitionsHandler, secondTab.transitionsHandler, thirdTab.transitionsHandler]
        )
        
        return result
    }
    
    func createFirstTabControllerIpad(
        sharedTransitionId sharedTransitionId: TransitionId,
        sharedTransitionsCoordinator: TransitionsCoordinator)
        -> (viewController: UIViewController, transitionsHandler: TransitionsHandler)
    {
        let firstSplit = UISplitViewController()
        let firstSplitTransitionsHandler = SplitViewTransitionsHandlerImpl(
