         bottompContainerConstraint.isActive = true
         view.layoutIfNeeded()
         
+        // select controller
         selectController(atIndex: selectedIndex ?? 0)
         
+        // assignment variable
         previousTopLayoutGuideLength = topLayoutGuide.length
     }
     

        self.delegate?.swiftyPageController(self, willMoveToController: viewControllers[index])
        let newController = viewControllers[index]
        let direction: AnimationDirection = index - selectedIndex! > 0 ? .left : .right
//        transition(fromController: self.viewControllers[selectedIndex!], toController: newController, animationDirection: direction)
        interactiveTransition(fromController: self.viewControllers[selectedIndex!], toController: newController, animationDirection: direction) // new
    }
    

        animationPositionFromController.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
        
        fromController.view.layer.speed = panGesture.state != .changed ? kAnimation : 0.0
        fromController.view.layer.add(animationPositionFromController, forKey: fromControllerAnimationIdentifier)
        
        // call delegate 'willMoveToController' method
        delegate?.swiftyPageController(self, willMoveToController: toController)
        
        // assignment variables
        fromControllerInteractive = fromController
        toControllerInteractive = toController
        
