         moveToIndex(index, animated: animated)
     }
     
-    public func changePageToIndex(index: Int, animated: Bool, withCallback callback: (Void) -> Void) {
-        changePageWaitForCallback = true
-        changePageCallback = callback
+    public func changePageToIndex(index: Int, animated: Bool, completion: (Void -> Void)) {
+        isWaitingForPageChangedCallback = true
+        pageChangedCallback = completion
         changePageToIndex(index, animated: animated)
     }
     
-    // MARK: private methods
+    // MARK: Private Methods
     private func stopScrolling() {
         tabSectionScrollView.setContentOffset(tabSectionScrollView.contentOffset, animated: false)
         contentSectionScrollView.setContentOffset(contentSectionScrollView.contentOffset, animated: false)

    
    // scrolling animation stop programmatically
    public func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {
        if (changePageWaitForCallback) {
            changePageWaitForCallback = false
            changePageCallback?()
        }
    }
    

    private var prevScrollingIndex = -1
    private var prevPageIndex = -1
    
    private var isWaitingForPageChangedCallback = false
    private var pageChangedCallback: (Void -> Void)?
    
    private var tabSectionHeight: CGFloat = 0
    private var contentSectionHeight: CGFloat = 0
