 
     om/IWillUpdate
     (will-update [_ {:keys [stime etime orig-time]} _]
-      (om/set-state! owner :width (str (* (/ (- etime stime) (- etime orig-time))
-                                          100) "%")))
+      (om/set-state! owner :width (-> (/ (- etime stime) (- etime orig-time))
+                                      (* 100)
+                                      (str "%"))))
 
     om/IRenderState
     (render-state [_ {:keys [width]}]

(defn now [] (.now js/Date))

(defn default-state []
  {:stime (now)
   :etime (+ (:twenty-five presets) (now))
   :orig-time (now)
   :on false})

(def sound (.createElement js/document "audio"))
(set! (.-src sound) "/sounds/bell.mp3")

        #js {:className (if (.valueOf on) "preset disabled" "preset")}
        (dom/a #js {:onClick (fn [e]
                               (.preventDefault e)
                               (when-not (.valueOf on)
                                 (let [t (om/get-state owner :time)
                                       ds (default-state)]
                                   (om/transact! cursor
                                                 #(assoc (into % ds)
                                                         :etime (+ (* one-min t) (:stime ds)))))))}
               (om/get-state owner :time))))))

(defn presets-view [{:keys [stime etime on] :as cursor} _]
