 
 (zc/def-component ActionChoices
   [this]
-  (let [{:keys [game-state]} (zc/props this)]
-    nil))
-
-#_(defn render-action-choices
-  "Render the player action choices menu if the world state is `:action-select`."
-  [state]
-  (let [screen (get state :screen)
-        abilities (get-in state [:world :action-select])
+  (let [{:keys [game-state]} (zc/props this)
+        abilities (get-in game-state [:world :action-select])
         height (if (seq abilities)
                  (+ 3 (* 3 (count abilities)))
                  4)]  
-    (render-list screen :ui 17 4 43 height
-      (if (seq abilities)
-        (concat
-          (mapcat
-            (fn [ability]
-              [{:s (format "<color fg=\"highlight\">%s</color> - %s" (get ability :hotkey) (get ability :name))
-                :fg :black
-                :bg :white
-                :style #{}}
-               {:s "" :fg :black :bg :white :style #{}}])
-            abilities)
-          [{:s "" :fg :black :bg :white :style #{}}
-           {:s "Select hotkey or press <color fg=\"highlight\">Esc</color> to exit." :fg :black :bg :white :style #{}}])
-        [{:s "Nothing to do." :fg :black :bg :white :style #{}}
-         {:s "" :fg :black :bg :white :style #{}}
-         {:s "Press <color fg=\"highlight\">Esc</color> to exit." :fg :black :bg :white :style #{}}]))
-        
-    (render-rect-double-border screen 16 3 43 height :black :white)
-    (put-string screen :ui 30 3 "Choose Action" :black :white)))
-
+    (zc/csx [zcui/Popup {:style {:top -5
+                                 :color (rcolor/color->rgb :black)
+                                 :background-color (rcolor/color->rgb :white)}} [
+                (if (seq abilities)
+                  (zc/csx [MultiSelect {:title "Choose Action"
+                                        :items
+                                          (concat
+                                            (mapcat
+                                              (fn [ability]
+                                                [{:name (get ability :name)
+                                                  :hotkey (get ability :hotkey)}
+                                                 {:name (get ability :description)}
+                                                 {:name ""}])
+                                              abilities)
+                                            [{:name ""}
+                                             {:name "Select hotkey or press Esc to exit."}])}])
+                (zc/csx
+                  [:view {} [
+                    [:text {} ["Nothing to do."]]
+                    [:text {} [""]]
+                    [:text {} [
+                      [:text {} ["Press "]]
+                      [Highlight {} ["Esc "]]
+                      [:text {} ["to exit."]]]]]]))]])))
 
 (zc/def-component Describe
   [this]

            [:view {:style {:position :fixed
                            :top 10
                            :left 36}} [
              [:text {} ["Loading..."]]]]]]]]]])))

(zc/def-component Connecting
  [this]

   "hurricane"])
(def tidbit-freqs (atom (zipmap (range (count loading-tidbits)) (repeat 0))))

(zc/def-component Loading
  [this]
  (let [{:keys [state]} (zc/props this)
        r (mod (/ (System/currentTimeMillis) 4000) (count loading-tidbits))
        n          (->> (sort-by val @tidbit-freqs)
                        (partition-by val)
                        first
                        (#(nth % r))
                        first)]
    (swap! tidbit-freqs (fn [freqs] (update freqs n inc)))
    (zc/csx 
	  [:terminal {} [
		[:group {:id :app} [
