     om/IWillMount
     (will-mount [_]
       (send-msg! {"id" (uuid)
-                  "command" "list"} println))
+                  "command" "list"} (create-handler :list cursor owner)))
     om/IRender
     (render [_]
       (html
        [:div.container
         [:div.page-header
-         [:h1 "Org UI"]]]))))
+         [:h1 (:title cursor)]]]))))
 
 (defn main []
   (setup-connection)

(defn receive-msg! [server-ch]
  (go-loop []
    (let [{:keys [message]} (<! server-ch)
          uuid (get message "in-response-to")
          data (get message "data")]
      (when-let [handler (get @requests uuid)]
        (handler data)
        (swap! requests dissoc uuid))
      (recur))))

      (send-loop server-ch))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Handler

(defmulti handle-event
  (fn [event msg app owner] event))

(defmethod handle-event :list [_ msg app owner]
  (om/update! app :data msg))

(defmethod handle-event :default [_ msg app owner])

(defn create-handler [event app owner]
  (fn [msg]
    (handle-event event msg app owner)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Views

(defn application [cursor owner]
