   The arity 4 version lets you specify a channel if you also want to handle events outside of component hierarchy.
 
   **IMPORTANT:** If you pass a channel to receive events through, you **MUST** consume events."
-  ([f value options]
-    (root<> f value options nil))
-  ([f value options out-event-ch]
-    (root* f value options out-event-ch {:bubbling (impl/event-bus (impl/bubbling-router))
-                                         :trickling (impl/event-bus (impl/trickling-router))})))
-
+  ([f value options & [out-event-ch]]
+    (root* f value options out-event-ch {::bubbling (impl/event-bus (impl/bubbling-router))
+                                         ::trickling (impl/event-bus (impl/trickling-router))})))
 
 (defn root>
   "Use `root>` instead of om.core/root to add support for sending events from child components to parent components only.

  ([f value options]
    (root> f value options nil))
  ([f value options out-event-ch]
    (root* f value options out-event-ch {:bubbling (impl/event-bus (impl/bubbling-router))})))

(defn root<
  "Use `root>` instead of om.core/root to add support for sending events from parent components to child components only."
  ([f value options]
    (root* f value options nil {:trickling (impl/event-bus (impl/trickling-router))})))

; =============================================================================
;; ### Triggering events.

(defn bubble
  "This function sends an event from the component up through its parent components.

                                             (om/build* f x (-> m
                                                                (update-in [:init-state] merge {::event-buses parent-buses})
                                                                (merge {:descriptor descriptor})))))}))))

;; ### Event triggering

(defn trigger*
  [owner event-bus-key event]
  (let [event-bus (event-bus-key (om/get-state owner ::event-buses))]
    (impl/trigger event-bus event))
  nil)  ; Avoid the following React.js warning: "Returning `false` from an event handler is deprecated
        ; and will be ignored in a future release. Instead, manually call e.stopPropagation() or e.preventDefault(),
        ; as appropriate."

;; ### Event bus setup

