   (combine-responses
    (mapcat
     identity
-    (for [t (:lookup-tables model)]
+    (for [t (:unique-key-tables model)]
       (let [uber-key (t/uber-key model)
             uber-key-value (t/extract-uber-key-value model record)
             key (:key t)


(defn update-with-acquire-responses
  [table acquire-key-responses record]
  (reduce (fn [[status key-desc _]]
            (let [coll (:collection table)
                  key-col (last (:key key-desc))
                  key-val (last (:key-value key-desc))]
              (condp = coll
                :set (when-not (= :ok status)
                       (assoc record
                              key-col
                              (disj (get record key-col)
                                    key-val)))
                :list (when-not (= :ok status)
                        (assoc record
                               key-col
                               (filterv #(not= key-val %)
                                        (get record key-col))))

                :map (when-not (= :ok status)
                       (assoc record
                              key-col
                              (dissoc (get record key-col)
                                      key-val)))

                :else (when-not (= :ok status)
                        (assoc record key-col nil)))))
          record
          acquire-key-responses))


        (if coll
          (let [old-kvs (set (k/extract-key-value-collection key old-record))
                new-kvs (set (k/extract-key-value-collection key new-record))
                stale-kvs (filter identity (set/difference old-kvs new-kvs))]
            (for [kv stale-kvs]
              (release-unique-key session model t uber-key-value kv)))

