   (flatten (map (partial evaluate ctx) tags)))
 
 (defmethod evaluate :SLEEP [{:keys [db user] :as ctx} _]
-  [:SAVE*
-   (map
-    (fn [ping]
-      [ping ["sleep"]])
-    (db/sleepy-pings db user))])
+  (let [sleepy-pings (db/sleepy-pings db user)]
+    (trace [:sleepy-pings (:id user) (vec sleepy-pings)])
+    [:SAVE*
+     (map
+      (fn [ping]
+        [ping ["sleep"]])
+      sleepy-pings)]))
 
 (defn update-pings [pings]
   (->> pings

(defmulti evaluate (fn [context [v & vs]] v))

(defmethod evaluate :CMDS [ctx [_ & vs]]
  (doseq [[cmd {:keys [saved error]}] (map (partial evaluate ctx) vs)]
    (when error (timbre/error error))))


    pings)))

(defn save* [{:keys [db user] :as ctx} ps]
  (trace [:save* (:id user) ps])
  (let [new (update-pings ps)]
    (try (do (save-pings ctx new)
             {:saved new})
