                                                 {:id "2004" :count 1}
                                                 {:id "3340" :count 1}]}]}}))
 
-(go
-  (let [champ-chan (data/champ-chan)
-        item-chan (data/item-chan)
-        champs (<! champ-chan)
-        items (<! item-chan)]
-    (swap! app assoc :items items :champs champs :champ (val (first champs)))))
+(defonce init (go
+                (let [champ-chan (data/champ-chan)
+                      item-chan (data/item-chan)
+                      champs (<! champ-chan)
+                      items (<! item-chan)]
+                  (swap! app assoc :items items :champs champs :champ (val (first champs))))))
 
 (defn recommend []
   (let [{:keys [items num-items champ champ-level props]} @app

   [:div.media-body
    [:h4.media-heading
     [item-select idx item]
     [:sapn
      [:img {:src (data/gold-url)}]
      (:total (:gold item))]]
    [:div {:dangerouslySetInnerHTML {:__html (:description item)}}]]])


(defn champion-select []
  [:div.media
   [:div.media-left [champion-image]]
   [:div.media-body
    [:h4.media-heading "Make a build for:"]
    [:select {:value (:id (:champ @app))
                   :on-change (fn [event]
                                (swap! app
                                       #(assoc %1 :champ (get-in %1 [:champs %2]))
                                       (keyword (-> event .-target .-value))))}
        (for [[id ch] (sort-by (comp :name val) (:champs @app))]
          [:option {:key id :value id} (:name ch)])]]])

(defn item-select [idx item]
  [:select {:value (:id item)
