         agent (agent {})]
     (def agent1 agent)
     (reactive/handle-update
-      memory-tile-atom
+      screen-state-atom
       load-overlay
       agent)
     (reactive/handle-update
-      screen-state-atom
-      load-monochrome
-      agent)
-    (reactive/handle-update
       acquired-images
-      load-monochrome
+      load-overlay
       agent)))
   
 ;; MAIN WINDOW AND PANEL

       :nc channel-index :nz (screen-state :z) :nt 0})))

(defn overlay-loader
  "Creates overlay tiles for visible monochrome tiles in memory."
  [screen-state-atom memory-tile-atom overlay-tiles-atom]
  (doseq [tile (visible-tile-indices @screen-state-atom :overlay)]
    (tile-cache/add-tile overlay-tiles-atom

                         (multi-color-tile memory-tile-atom tile
                                           (:channels @screen-state-atom)))))

(defn load-visible-only
  "Runs visible-loader whenever screen-state-atom changes."
  [screen-state-atom memory-tile-atom
   overlay-tiles-atom acquired-images]
  (let [load-overlay (fn [_ _]
                       (overlay-loader
                         screen-state-atom
                         memory-tile-atom
