   (when-let [id (resolve-id db-snap id)]
     (get-in* db-snap [:data id])))
 
-(defn get [db-snap id attr]
-  (get* (entity db-snap id) attr))
-
-(defn get-in [db-snap id & ks]
+(defn get [db-snap id & args]
+  (apply get* (cons (entity db-snap id) args)))
+
+(defn get-in [db-snap id ks]
   (get-in* (entity db-snap id) ks))
 
 (defn add-index [[db-snap reports] id a v]


(defn entities
  [db-snap & qs]
  (prn (apply entity-ids (cons db-snap qs)))
  (map (partial entity db-snap) (apply entity-ids (cons db-snap qs))))

(defn squuid []

  {:db/retract-entity retract-entity
   :db/retract-attr   retract-attr
   :db/add            add
   :db/update-attr    update-attr})

(defn find-id-by-unique-attr [db-snap tx]
  (when (map? tx)
    (when-let [a (->> (keys tx)
                      (filter (partial identity? db-snap))
                      first)]
      (resolve-id db-snap [a (get* tx a)]))))

(defn get-id [tx]
  (cond (map? tx) (:db/id tx)
