             [uxbox.data.shapes :as uds]
             [uxbox.data.worker :as wrk]
             [uxbox.util.datetime :as dt]
+            [uxbox.util.math :as mth]
             [uxbox.util.geom.point :as gpt]))
 
 ;; --- Workspace Initialization

(defrecord DecreaseZoom []
  rs/UpdateEvent
  (-apply-update [_ state]
    (let [decrease #(* % 0.95)]
      (update-in state [:workspace :zoom] (fnil decrease 1)))))

(defn decrease-zoom

(defrecord IncreaseZoom []
  rs/UpdateEvent
  (-apply-update [_ state]
    (let [increase #(min (mth/precision (* % 1.05) 2) 3)]
      (update-in state [:workspace :zoom] (fnil increase 1)))))

(defn increase-zoom
