                            :layer/current-x snap-x
                            :layer/current-y snap-y)
                 (assoc-in [:mouse :down] true)
-                (assoc-in [:mouse :x] x)
-                (assoc-in [:mouse :y] y)
-                (assoc-in [:mouse :rx] rx)
-                (assoc-in [:mouse :ry] ry)
+                (update-mouse x y)
                 (assoc-in [:selected-eid] entity-id)
                 (update-in [:entity-ids] disj entity-id))]
             r)))

    state
    (finalize-layer state)))

(defmethod post-control-event! :mouse-depressed
  [target message [x y button] previous-state current-state]
  (let [cast! (fn [msg & [payload]]

                                                            (:layer/current-x layer)))
                                     :layer/ry (Math/abs (- (:layer/start-y layer)
                                                            (:layer/current-y layer)))}))))))
              (update-mouse state x y))]
      r)))

;; TODO: this shouldn't assume it's sending a mouse position
