                                 )
                 ]
             (dom/div #js {:className "container"}
+                     ;; The custom component
+                     (dom/div nil
+                         "Selected ocean:"
+                         (:selected-ocean (om/props this))
+                         (dom/button #js {:className "btn btn-default"
+                                          :onClick (fn [e]
+                                                     (om/transact! this `[(~'select-random-ocean
+                                                                           {:current-oceans
+                                                                            ~(:oceans (om/props this))
+                                                                            }
+                                                                           )])
+                                                     )
+                                          } "Select random ocean")
+                              )
                      ;; Tabs (navigation)
                         (apply dom/ul
                         #js


(defmulti mutatef om/dispatch)

;; Root

(def data {
           :countries (js->clj js/COUNTRIES_LIST :keywordize-keys true)
           :oceans ["Pacific" "Atlantic" "Indian" "Southern" "Arctic"]
           :hello "Hello, world! What's up?"
           })

;; Components


(def root-own-params
  {}
  )

(def root-own-query
  '[:oceans
    :selected-ocean]
  )

(def routes-chan (chan))

(defui RootView
  static om/IQueryParams
  (params [_]
          (merge
            initial-params
            root-own-params
            )
    )

  static om/IQuery
  (query [_]
         (vec (concat
           initial-query
           root-own-query
           ))
    )

  Object
