             data)))
 
 
+(defn- create-ordered-columns [columns]
+  (vec (map-indexed
+        (fn [index col]
+          (assoc col
+                 :index index :showing? true
+                 :width (or (:starting-width col) 100)
+                 :starting-width (or (:starting-width col) 100)))
+        columns)))
+
+
 (react/defc Table
   {:get-default-props
    (fn []

      :filterable? true})
   :get-initial-state
   (fn [{:keys [props]}]
     {:ordered-columns (vec (map-indexed
                             (fn [index col]
                               (assoc col
                                      :index index :showing? true
                                      :width (or (:starting-width col) 100)
                                      :starting-width (or (:starting-width col) 100)))
                             (:columns props)))
      :dragging? false})
   :render
   (fn [{:keys [this state props refs]}]

       (react/call :set-rows (@refs "body") (react/call :get-body-rows this rows))
       (react/call :set-num-rows-visible (@refs "paginator") (count rows))))
   :component-will-receive-props
   (fn [{:keys [props next-props state refs]}]
     (swap! state assoc :ordered-columns (create-ordered-columns (:columns props)))
     (react/call :make-desynced (@refs "filterer")))
   :component-did-mount
   (fn [{:keys [this state]}]
