     (:five presets)
     (:twenty-five presets)))
 
-(defn pomodoro? [five twenty-five]
-  (and (= (presets :twenty-five) twenty-five)
-       (= (presets :five) five)))
+(defn pomodoro? [twenty-five five]
+  (and (= (:twenty-five presets) twenty-five)
+       (= (:five presets) five)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Timer logic
-(def ^:constant time-speed 1)
+(def ^:constant time-speed 1e3)
 
 (def timer-chan
   (let [c (chan)

      (<! end-chan)
      (>! bg-chan true)
      (play-sound) ;; ding!
      (set-state! (default-state (next-time (get-state :time)))))) ;; set next pomodoro session

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Background logic
(defn set-bg! [bg]
  (let [img (nth images (rand-int 2))]
    (set-state! :bg img)))

(go (while true
      (<! bg-chan)
      (swap! history conj (get-state :time))
      (when (apply pomodoro? (take-last 2 @history))
        (set-bg! (get-state :bg)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Constants

(def ^:constant one-min (* 1e3 60))
(comment (def ^:constant presets {:five (* one-min 5)
                                  :twenty-five (* one-min 25)}))
(def ^:constant presets {:five 1e3
                         :twenty-five (* 1e3 2)})

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Compatability
