    (derive-column dataset new-column-name from-cols identity))
   ;; todo support multiple columns/arguments to f.
   ([dataset new-column-name from-cols f]
-     (inc/add-derived-column new-column-name from-cols f dataset)))
+     (inc/add-derived-column new-column-name (lift->vector from-cols) f dataset)))
 
 (defn- resolve-keys [headers hash]
   (map-keys #(resolve-col-id % headers nil) hash))

  [dataset n]
  (tabc/pass-rows dataset (partial take n)))

(defn derive-column
  "Adds a new column to the end of the row which is derived from
column with position col-n.  f should just return the cells value.

        new-col-ids (keys first-result)]

    new-col-ids))

(defn add-columns
  ([dataset hash]
