     
     fileprivate func finishTransition() {
         if let fromController = fromControllerInteractive, let toController = toControllerInteractive {
+            // drop timer
             timerForInteractiveTransition?.invalidate()
             timerForInteractiveTransition = nil
             
+            // call delegate 'didMoveToController' method
             delegate?.swiftyPageController(self, didMoveToController: toController)
             
             // remove fromController from hierarchy

        let translation = sender.translation(in: view)
        switch sender.state {
        case .changed:
            if !interactiveTransitionInProgress {
                if translation.x > 0 {
                    let index = selectedIndex! - 1
                    if index >= 0 {
                        selectController(atIndex: index, animated: isEnabledAnimation)
                    }
                } else {
                    let index = selectedIndex! + 1
                    if index <= viewControllers.count - 1 {
                        interactiveTransitionInProgress = true

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