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

            [uxbox.data.shapes :as uds]
            [uxbox.util.datetime :as dt]
            [uxbox.util.math :as mth]
            [uxbox.util.geom.point :as gpt]
            [uxbox.util.workers :as uw]))

;; --- Initialize Workspace

(declare initialize-alignment-index)

(defrecord InitializeWorkspace [project page]
  rs/UpdateEvent

(defrecord DecreaseZoom []
  rs/UpdateEvent
  (-apply-update [_ state]
    (let [decrease #(nth zoom-levels (- (index-of zoom-levels %) 1) (first zoom-levels))]
      (update-in state [:workspace :zoom] (fnil decrease 1)))))

(defn decrease-zoom
