     IWillMount
     (will-mount [_]
       (go-loop []
-        (let [start (om/get-state owner :start)
+        (let [start (time-coerce/to-date (get-in data [:timer :Start]))
               interval-seconds (/ (time/in-millis (time/interval start (time/now))) 1000)]
           (om/update-state! owner :elapsed-minutes #(mod (/ interval-seconds 60) 60))
           (om/update-state! owner :elapsed-hours #(mod (/ interval-seconds 60 60) 24)))
         (<! (async/timeout 1000))
         (recur)))
     IRenderState
-    (render-state [_ {x :x y :y sec :elapsed-seconds min :elapsed-minutes hr :elapsed-hours}]
-      (let [min-only (= 0 (int hr))]
+    (render-state [_ {min :elapsed-minutes hr :elapsed-hours}]
+      (let [{x :x y :y} (:dimensions data)
+            min-only (= 0 (int hr))]
         (dom/text #js {:x (if min-only
                             (- x 50)
                             (- x 130))

    IWillMount
    (will-mount [_]
      (go-loop []
        (let [start (om/get-state owner :start)
              interval-seconds (/ (time/in-millis (time/interval start (time/now))) 1000)]
          (om/update-state! owner :elapsed-minutes #(mod (/ interval-seconds 60) 60)))
        (<! (async/timeout 1000))

    (init-state [_]
      {:elapsed-hours 0})
    IRenderState
    (render-state [owner {hr :elapsed-hours}]
      (let [{x :x y :y r :r} (:dimensions data)]
        (pie x y (/ r 1.4) "#cccccc" (* 30 10 hr))))))

(defn timer-seconds [data owner]
  (reify
    IDisplayName
    (display-name [_]
      "Seconds on the timer")
    IWillMount
    (will-mount [_]
      (go-loop []
