     (full-screen! (default-screen-device) window)))
 
 (defn setup-fullscreen [window]
-  (bind-window-key window "F" #(full-screen! window))
-  (bind-window-key window "ESCAPE" #(full-screen! nil)))
+  (bind-window-keys window ["F"] #(full-screen! window))
+  (bind-window-keys window ["ESCAPE"] #(full-screen! nil)))
 
 ;; positional controls
 

    (.put im input-event uuid)
    (.put am uuid action)))

(defn bind-window-key
  [window input-key action-fn]
  (bind-key (.getContentPane window) input-key action-fn true))

;; full screen


  size-atom)

(defn handle-zoom [window zoom-atom]
  (bind-window-keys window ["ADD" "CLOSE_BRACKET"]
                   (fn [] (swap! zoom-atom update-in [:zoom] #(min MAX-ZOOM (inc %)))))
  (bind-window-keys window ["SUBTRACT" "OPEN_BRACKET"]
                   (fn [] (swap! zoom-atom update-in [:zoom] #(max MIN-ZOOM (dec %))))))

;; MAIN WINDOW AND PANEL

(defn main-panel [screen-state available-tiles]
  (doto
    (proxy [JPanel] []
      (paintComponent [^Graphics graphics]
        (proxy-super paintComponent graphics)
        (paint-screen graphics screen-state available-tiles)))
    (.setBackground Color/BLACK)))
    
(defn main-frame []
