         } else {
             return nil
         }
+    }
+    
+    mutating func removeAll() {
+        keys.removeAll()
+        values.removeAll()
     }
 }
 

    
    private var changePageWaitForCallback = false
    private var changePageCallback: ((Void) -> (Void))?
    
    // MARK: DataSource
    private var numberOfPages: Int {

                    cachedPageTabs[i] = tabView
                    tabSectionScrollView.addSubview(tabView)
                }
                tabSectionScrollViewContentWidth += widthForTabAtIndex(i)
            }
            tabSectionScrollView.contentSize = CGSize(width: tabSectionScrollViewContentWidth, height: tabSectionHeight)
            
            // first time
            if (!isStarted) {
