                                                      (/ (- end-y start-y)
                                                         (- end-tick start-tick pause-ticks))))]
                                 ((om/get-shared owner :cast!)
-                                 :subscriber-updated {:client-id (ffirst state/subscriber-bot)
-                                                      :fields {:mouse-position [ex ey]
-                                                               :show-mouse? true
-                                                               :layers [(assoc base-layer
-                                                                               :layer/current-x ex
-                                                                               :layer/current-y ey)]
-                                                               :tool tool}})))))
+                                 :subscriber-updated {:client-id (:client-id state/subscriber-bot)
+                                                      :fields (merge state/subscriber-bot {:mouse-position [ex ey]
+                                                                                           :show-mouse? true
+                                                                                           :layers [(assoc base-layer
+                                                                                                           :layer/current-x ex
+                                                                                                           :layer/current-y ey)]
+                                                                                           :tool tool})})))))
                 tick-state
                 (range 0 (inc (- end-tick start-tick pause-ticks))))
       (add-tick end-tick
                 (fn [owner]
                   ((om/get-shared owner :cast!)
-                   :subscriber-updated {:client-id (ffirst state/subscriber-bot)
+                   :subscriber-updated {:client-id (:client-id state/subscriber-bot)
                                         :fields {:mouse-position nil
                                                  :layers nil
                                                  :tool tool}})

    (render [_]
      ;; dummy span so that the component can be mounted
      (dom/span #js {:className "hidden"}))))

                                                   (/ (- end-y start-y)
                                                      (- end-tick start-tick))))]
                              ((om/get-shared owner :cast!)
                               :subscriber-updated {:client-id (:client-id state/subscriber-bot)
                                                    :fields (merge state/subscriber-bot {:mouse-position [ex ey]
                                                                                         :show-mouse? true
                                                                                         :tool tool})})))))
              tick-state
              (range 0 (inc (- end-tick start-tick))))
    (annotate-keyframes end-tick)))

(defn draw-shape [tick-state {:keys [start-tick end-tick start-x end-x
                                     start-y end-y tool doc-id props]
                              :or {tool :rect}}]
  (let [base-layer (merge {:layer/start-x start-x
                           :layer/start-y start-y
                           :layer/end-x end-x
                           :layer/end-y end-y
                           :layer/type (keyword "layer.type" (if (= :circle tool)
                                                               "rect"
                                                               (name tool)))
                           :layer/name "placeholder"
                           :layer/stroke-width 1
                           :document/id doc-id
                           :db/id (- (inc (rand-int 1000)))}
                          (when (= :circle tool)
                            {:layer/rx 1000
                             :layer/ry 1000})
                          props)
        ;; number of ticks to pause before saving layer
        pause-ticks 2]
