             self.didFinishScrollingCompletionHandler?(transitionSuccessful: false)
             self.didFinishScrollingCompletionHandler = nil
             
-            // Remove hidden view controllers
-            self.removeChildIfNeeded(self.leftViewController)
-            self.removeChildIfNeeded(self.rightViewController)
-            
             if self.reloadAdjoiningViewControllersOnFinish {
-                
                 if (self.navigationDirection == .Forward) {
                     self.loadRightViewControllerForSelectedViewController(selectedViewController)
                 } else if (self.navigationDirection == .Reverse) {
                     self.loadLeftViewControllerForSelectedViewController(selectedViewController)
                 }
             }
-
-            
-        // Initialization
-        } else {
-            
-            // Set controller as current
-            self.selectedViewController = selectedViewController
-            
-            // Show view controller
-            self.addChildIfNeeded(self.selectedViewController!)
-            
-            // Retreive left and right view controllers if available
-            self.leftViewController = self.dataSource?.em_pageViewController(self, viewControllerLeftOfViewController: selectedViewController)
-            self.rightViewController = self.dataSource?.em_pageViewController(self, viewControllerRightOfViewController: selectedViewController)
+            
         }
         
         self.navigationDirection = nil

        // Scrolled forward
        if (selectedViewController == self.rightViewController) {
            
            self.delegate?.em_pageViewController?(self, didFinishScrollingFrom: self.selectedViewController, destinationViewController: self.rightViewController!, transitionSuccessful: true)
            
            self.didFinishScrollingCompletionHandler?(transitionSuccessful: true)
            self.didFinishScrollingCompletionHandler = nil
            
            self.removeChildIfNeeded(self.selectedViewController)
            
            if self.reloadAdjoiningViewControllersOnFinish {
                self.loadLeftViewControllerForSelectedViewController(selectedViewController)
                self.reloadAdjoiningViewControllersOnFinish = false
            } else {
                // Set new left controller as the old current controller
                self.leftViewController = self.selectedViewController
            }
            
            // Set the new current controller as the old right controller
            self.selectedViewController = self.rightViewController
            
            self.loadRightViewControllerForSelectedViewController(selectedViewController)
            
            
        // Scrolled reverse
        } else if (selectedViewController == self.leftViewController) {
            
            self.delegate?.em_pageViewController?(self, didFinishScrollingFrom: self.selectedViewController!, destinationViewController: self.leftViewController!, transitionSuccessful: true)
            
            self.didFinishScrollingCompletionHandler?(transitionSuccessful: true)
            self.didFinishScrollingCompletionHandler = nil
            
            self.removeChildIfNeeded(self.selectedViewController)
            
            if self.reloadAdjoiningViewControllersOnFinish {
                self.loadRightViewControllerForSelectedViewController(selectedViewController)
                self.reloadAdjoiningViewControllersOnFinish = false
            } else {
                // Set new right controller as the old current controller
                self.rightViewController = self.selectedViewController
            }
            
            // Set the new current controller as the old left controller
            self.selectedViewController = self.leftViewController
            
            self.loadLeftViewControllerForSelectedViewController(selectedViewController)
        
        // Scrolled but ended up where started
        } else if (selectedViewController == self.selectedViewController) {
            
            if (self.navigationDirection == .Forward) {
                self.delegate?.em_pageViewController?(self, didFinishScrollingFrom: self.selectedViewController!, destinationViewController: self.rightViewController!, transitionSuccessful: false)

    // MARK: - Internal Callbacks
    
    private func willScrollFromViewController(startingViewController: UIViewController?, destinationViewController: UIViewController) {
        if (startingViewController != nil) {
            self.delegate?.em_pageViewController?(self, willStartScrollingFrom: startingViewController!, destinationViewController: destinationViewController)
        }
        self.addChildIfNeeded(destinationViewController)
    }
    
    private func didFinishScrollingToViewController(viewController: UIViewController) {
