   (component/system-map
    :renderer (component/using (map->Renderer {})
                               [:displayer])
-   :displayer (map->Displayer {})))
+   :displayer (map->ConsoleDisplayer {})))
 
 ;;; Below: defs useful for interacting with the running renderer
 

(defrecord RenderState [env model])


(defn display [{:keys [frame-chan] :as displayer} frame]
  (>!! frame-chan frame))

(defn start-displaying [{:keys [frame-chan] :as displayer}]
  (thread
    (loop [prev-frame nil]
      (let [frame (<!! frame-chan)]
        (if frame
          (do (when (not= frame prev-frame)
                (println frame))
              (recur frame))
          (println "Shutting down displayer"))))))

(defrecord Displayer [frame-chan]
  component/Lifecycle
  
  (start [displayer]
    (let [frame-chan (chan)
          displayer (assoc displayer :frame-chan frame-chan)]
      (start-displaying displayer)
      displayer))

  (stop [displayer]
    (close! frame-chan)
    displayer))


(defn get-env-updates [env]
  (-> env
      (assoc :time (System/currentTimeMillis))))


(defn render-step [{:keys [env model] :as state}]
  (let [{:keys [layers]} model

            (if (= status :running)
              (alt!! command-chan ([command] (execute command state status)) 
                     :default (let [next-frame (render-step state)]
                                (to-displayer displayer next-frame)
                                [state :running]))
              (execute (<!! command-chan) state status))]
        (if loop-result
