            :on-change #(reset! value (-> % .-target .-value))}])
 
 (defn shared-state []
-  (let [val (atom "foo")]
+  (let [val (r/atom "foo")]
     (fn []
       [:div
        [:p "The value is now: " @val]
        [:p "Change it here: " [atom-input val]]])))
 
 (defn timer-component []
-  (let [seconds-elapsed (atom 0)]
+  (let [seconds-elapsed (r/atom 0)]
     (fn []
       (js/setTimeout #(swap! seconds-elapsed inc) 1000)
       [:div
        "Seconds Elapsed: " @seconds-elapsed])))
 
 (defn render-simple []
-  (reagent/render-component [simple-component]
-                            (.-body js/document)))
-
-(def bmi-data (atom {:height 180 :weight 80}))
+  (r/render-component [simple-component]
+                      (.-body js/document)))
+
+(def bmi-data (r/atom {:height 180 :weight 80}))
 
 (defn calc-bmi []
   (let [{:keys [height weight bmi] :as data} @bmi-data

                    :src (s/src-of nil "todomvc/core.cljs")}]])

(defn main []
  (let [show-all (atom false)
        head "Reagent: Minimalistic React for ClojureScript"]
    (js/setTimeout #(reset! show-all true) 500)
    (fn []


   [:p "Incidentally, this page also uses another React trick: the
   entire page is pre-rendered using Node, and "
   [:code "reagent.core/render-component-to-string"] ". When it is loaded
   into the browser, React automatically attaches event-handlers to
   the already present DOM tree."]])

