 
 extension TabNavigationController: UIScrollViewDelegate {
     func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
+        guard _headOfViewControllersStack == _viewControllersStack[0].startIndex else {
+            return
+        }
         _commitTransitionNavigationItemViews(at: Int(scrollView.contentOffset.x / scrollView.bounds.width))
     }
     
     func scrollViewDidScroll(_ scrollView: UIScrollView) {
+        guard _headOfViewControllersStack == _viewControllersStack[0].startIndex else {
+            return
+        }
         if scrollView.isDragging || scrollView.isDecelerating {
             let index = Int(scrollView.contentOffset.x / scrollView.bounds.width)
             
-            if index < childViewControllers.index(before: childViewControllers.endIndex)
+            if index < _viewControllersStack[0].index(before: _viewControllersStack[0].endIndex)
             && scrollView.contentOffset.x >= 0
             && scrollView.contentOffset.x.truncatingRemainder(dividingBy: scrollView.bounds.width) != 0.0
             {
-                let showingIndex = childViewControllers.index(after: index)
-                let viewController = childViewControllers[showingIndex]
+                let showingIndex = _viewControllersStack[0].index(after: index)
+                let viewController = _viewControllersStack[0][showingIndex]
                 
-                let formerViewController = childViewControllers[index]
+                let formerViewController = _viewControllersStack[0][index]
                 let transitionNavigationItemViews = tabNavigationBar.beginTransitionNavigationItems(viewController.tabNavigationItems, on: formerViewController.tabNavigationItems, in: _transitionNavigationItemViewsInfo?.navigationItemViews)
                 
                 _transitionNavigationItemViewsInfo = (showingIndex, transitionNavigationItemViews)

    }
    @discardableResult
    public func removeViewController<T>(_ viewController: T) -> (Bool, UIViewController?) where T: UIViewController, T:TabNavigationReadable {
        guard let index = childViewControllers.index(of: viewController) else {
            return (false, nil)
        }
        

        viewController.view.heightAnchor.constraint(equalTo: _contentScrollView.heightAnchor).isActive = true
        
        self.addChildViewController(viewController)
        _viewControllersStack[0].append(viewController)
        viewController.didMove(toParentViewController: self)
        
        if let scrollView = viewController.view as? UIScrollView {
