                    stat-optimized? (as-> el [:b el]))]]))])
 
 (defn item-block [id block]
-  (let [items (map #(get @items (int (:id %))) (:items block))]
-   [:div.panel.panel-default {:key id}
+  (let [items (mapv #(get @items (int (:id %))) (:items block))]
+   [:div.panel.panel-default
     [:div.panel-heading
      [:input.form-control
       {:type "text"
        :on-change #(swap! app assoc-in [:itemset :blocks id :type] (-> % .-target .-value))
        :value (:type block)}]]
-      [:div.panel-body
+    [:div.panel-body
      (for [item items]
        [:span {:key (:id item)}
-        (item-image item)])]]))
+        [item-image item]])]]))
 
 (defn item-set [itemset]
   (let [blocks (map vector (range) (:blocks itemset))]

     :width 64 :height 64}]])

(defn item-component [idx item]
  [:div.media.well.well-sm {:key (:id item)}
   [:div.media-left [item-image item]]
   [:div.media-body
    [:h4.media-heading


(defn item-recommendation [recommended]
  [:div.media-list
   (map (fn [idx item]
          ^{:key idx} [item-component idx item])
        (range)
        recommended)])

