     (recur queue))
   )
 
-;(defn herp [term client]
-  ;(.on term "key"  #((let [string (str "key was " %)]
-                     ;(println string)
-                     ;(.send client string)
-                     ;)))
-  ;(.on term "data" #((let [string (str "data was " %)]
-                     ;(println string)
-                     ;(.send client string)
-                     ;))))
-
-(defonce clients (atom []))
 
 (defn kick-it [client]
-  (let [{:keys [term character]} client]
-    (prn term)
+  (let [{:keys [term character client]} client]
     (teardown term)
-    (setup term character)
+    (setup term character client)
     (show-screen term character)
     (popper! queue)))
 

(defn pusher! [& arguments]
  (swap! queue conj arguments))

(defn setup [term character]
  (doto term
    (.clear)
    (.applicationKeypad)
    (.hideCursor)
    (.grabInput #js { :mouse "button" :focus true }))

  (keyboard/HandleCharacterKeys term level character)
  (.on keyboard/emitter "move" (partial pusher! "move"))

                                           :term   term
                                           :character (make-character) } ]
                           (swap! clients conj new-client)
                           (async
                             (let [dat-name (await (generate-name))]
                               (prn (str dat-name " has joined the fray."))
                               (swap! (:character new-client) assoc :name dat-name)))
                           (kick-it new-client))))
    (.listen 2323)))

