 `screen` maps in the order they were provided.
 
     (set-screen! my-game main-screen text-screen)"
-  [^Game game & screens]
+  [^Game game & screen-objects]
   (let [add-inputs! (fn []
                       (input! :set-input-processor (InputMultiplexer.))
-                      (doseq [{:keys [screen]} screens]
+                      (doseq [{:keys [screen]} screen-objects]
                         (doseq [[_ listener] (:input-listeners @screen)]
                           (add-input! listener))))
         run-fn! (fn [k & args]
-                  (doseq [screen screens]
+                  (doseq [screen screen-objects]
                     (apply (get screen k) args)))]
     (.setScreen game (reify Screen
                        (show [this] (add-inputs!) (run-fn! :show))

handle errors and perform other custom actions each time they run.

    ; default behavior
    (set-screen-wrapper! (fn [screen screen-fn]
                           (screen-fn)))
    ; if there is an error, print it out and switch to a blank screen
    ; (this is useful because it makes error recovery easier in a REPL)
    (set-screen-wrapper! (fn [screen screen-fn]
                           (try (screen-fn)
                             (catch Exception e
                               (.printStackTrace e)

    ; return a map with all values related to the screen
    {:screen screen
     :entities entities
     :options options
     :show (fn []
             (swap! screen assoc
                    :total-time 0
