   (let [target (apply str (take 20 target))
         text (str text " " target)
         id (.toString (java.util.UUID/randomUUID))]
-    (swap! app update-in [:timers] conj
-           (Timer. id text (t/now) (tr/parse-time duration) opts))))
+    (swap! app assoc-in [:timers id] (Timer. id text (t/now) (tr/parse-time duration) opts))))
 
 (defn clear-timers []
   (swap! app update-in [:timers]

    "tell your guild," (pipe "chat.txt" {:fg "green" :bold true})))

(defn handle-line [line]
  (log (str "got line " line))
  (when-not (str/blank? line)
    (p/parse-line line (partition 2 triggers)))
  )

(defn watch []
  (let [watcher (proxy [TailerListenerAdapter] []

         :events []
         ;;:log-path "/home/makoco/eq-logs/eqlog_Hadiar_project1999.txt"
         :log-path "C:/dev/yaqp/log/eqlog_Hadiar_project1999.txt"
         :timers {}}))

(defprotocol Timed
  (expired? [t now])
