 update on the fly.
 
 Besides, it's much more readable this way"
-  [{:keys [ch rcvr web-sock-handler] :as bundle}
+
+  [;; mish-mash because of the way this was refactored out of the middle of the loop
+   ;; ch is the channel that the request came in on
+   ;; rcvr is the channel where browser messages come from
+   ;; web-sock-handler...is probably the Component
+   {:keys [ch rcvr web-sock-handler] :as bundle}
    msg :- s/Any]
   (when-not web-sock-handler
     (log/error "Missing web socket handler in:\n" (util/pretty bundle))


(s/defn request-ns-load!
  [this :- WebSockHandler
   {:keys [module-name macro? path world] :as data}]
  ;; Q: Does it make sense to spawn the thread here? Or in the caller?
  ;; A: It depends on whether these handlers should always run in their
  ;; own thread, of course.
  ;; For that matter, it might make the most sense to just pass a
  ;; parameter to rpc to decide whether to spawn a new thread or not
  (async/thread
    (let [mgr (-> this :frereth-server :connection-manager)
          response
              (manage
           (con-man/rpc-sync world
                        :frereth/load-ns
                        (select-keys [module-name macro? path]))
           ;; For now, just insert handlers directly into the code
           ;; to be compiled
           ;; TODO: Come up w/ a better strategy
           ;; If nothing else, this sort of thing seems like it would be
           ;; more appropriate in the client.
           ;; Except that, as far as the client is concerned, there's
           ;; no real hint about what we're doing.
           ;; So maybe this should be a wrapper in there around rpc
           ;; Get it working first, then worry about getting it to work
           ;; correctly.
           (on :timeout []
               {:script '(raise :timeout)}))]
      (reply this
             data
             :frereth/loaded-ns
             response))))

(s/defn initialize-connection!
  [this :- WebSockHandler

           event-loop
           (async/go
             (loop []
               (log/debug "Top of websocket event loop")

               ;; TODO: I'm pretty sure I have 5 minutes defined somewhere useful
               (let [t-o (async/timeout (* 1000 60 5))
                     [v ch] (async/alts! [t-o stopper rcvr ws-controller])]
