 
 (defmulti mutatef om/dispatch)
 
+
+(defmethod mutatef 'select-random-ocean
+  [{:keys [state] :as env} k {:keys [current-oceans] :as params}]
+  {:action
+   (fn []
+     (swap! state #(assoc % :selected-ocean
+             (rand-nth (vec current-oceans))
+             ))
+     )}
+  )
+
 ;; Root
 
 (def data {
            :countries (js->clj js/COUNTRIES_LIST :keywordize-keys true)
+           :selected-ocean nil
            :oceans ["Pacific" "Atlantic" "Indian" "Southern" "Arctic"]
            :hello "Hello, world! What's up?"
            })

          (apply dom/ul nil
                 (map (fn [ocean]
                        (dom/li nil
                                ocean
                                )
                        )
                      (:oceans (om/props this))

                     (go-loop [new-query (<! routes-chan)]
                                (om/set-query!
                                  this
                                  {:query
                                   (-> new-query :query (concat root-own-query) vec)
                                   :params
                                   (-> new-query :params (merge root-own-params)) ;; TODO: this weren't checked
                                   }
                                  )
                              (recur (<! routes-chan))
                       )
