 
 (defmethod page :item [state]
   (when-let [entry (get-in state [:current-item :item])]
-    [item entry]))
+    (case (:type entry)
+      "story" [story entry]
+      "comment" [comment entry]
+      [:p "Cannot render item"])))
 
 (defn main-page [state]
   [:div


;; ------------------------
;; Components
(defmulti item :type)

(defmethod item "story" [data]
  (let [local (atom {:collapse? false
                     :collapse-comments? true})]
    (fn [data]

                   "Comments: "]
              (when-not (:collapse-comments? @local)
                (for [[id sub-data] (vec kids)]
                  ^{:key id} [comment sub-data]))])])))))

(defn top-stories [state]
  (let [{top-stories :top-stories} state]
