   [data clusters]
   (as-> clusters clsts
     ; map every cluster to the newly centered cluster or to nil if there are no members in data
-    (p :safe-recenter-map (greedy
     (map
       (fn [clst]
         (let [rns (safe-rowname-subset data (:members clst))]

      [{:id (inc (apply max (map :id clusters)))
        :members (rownames data)
        :center (mean (matrix (get-matrix data)))}]
      clsts)
    ; XXX - for profiling
    (greedy clsts)))


(defn merge-clusters [clst1 clst2]

            (if (> (:dist outlier) 0)
              ; There is work to be done, so do it
              (recur
                (->
                  ; first remove the most distal point from the cluster it was in;
                  (map
