       ptk/WatchEvent
       (watch [_ state stream]
         (let [pid (get-in state [:workspace :current])
-              zoom (get-in state [:workspace pid :zoom])
-              flags (get-in state [:workspace pid :flags])
+              {:keys [zoom flags]} (get-in state [:workspace pid])
+
               align? (refs/alignment-activated? flags)
               stoper (rx/filter stoper-event? stream)
-              mouse (->> (rx/sample 10 uws/mouse-position)
-                         (rx/mapcat #(conditional-align % align?)))]
+              mouse  (->> (rx/sample 10 uws/mouse-position)
+                          (rx/mapcat #(conditional-align % align?))
+                          (rx/map #(gpt/divide % zoom)))]
+
           (rx/concat
            (rx/of initialize-drawing)
            (->> mouse

      ptk/WatchEvent
      (watch [_ state stream]
        (let [pid (get-in state [:workspace :current])
              zoom (get-in state [:workspace pid :zoom])
              flags (get-in state [:workspace pid :flags])
              align? (refs/alignment-activated? flags)

              last-point (volatile! @uws/mouse-position)

              stoper (->> (rx/filter stoper-event? stream)
                          (rx/share))

              mouse (->> (rx/sample 10 uws/mouse-position)
                         (rx/mapcat #(conditional-align % align?)))

              points (->> stream
                          (rx/filter uws/mouse-click?)

      ptk/WatchEvent
      (watch [_ state stream]
        (let [pid (get-in state [:workspace :current])
              {:keys [zoom flags]} (get-in state [:workspace pid])
              align? (refs/alignment-activated? flags)

              stoper? #(or (uws/mouse-up? %) (= % :interrupt))
              stoper (rx/filter stoper? stream)

              mouse (->> uws/mouse-position
                         (rx/mapcat #(conditional-align % align?))
                         (rx/map #(gpt/divide % zoom)))]
          (rx/concat
           (->> mouse
                (rx/take 1)
                (rx/map (fn [pt] #(initialize-drawing % pt))))
           (->> mouse
                (rx/with-latest vector uws/mouse-position-ctrl)
                (rx/map (fn [[pt ctrl?]] #(update-drawing % pt ctrl?)))
                (rx/take-until stoper))
           (rx/of handle-finish-drawing)))))))
