 
 (declare reinstall-om!)
 
-(defn install-om [state ab-tests container comms]
+(defn install-om [state container comms]
   (om/root
    app/app
    state
    {:target container
     :shared {:comms comms
-             ;; note that changing ab-tests dynamically requires reinstalling om
-             :ab-tests ab-tests
              :timer-atom (timer/initialize)
              :_app-state-do-not-use state
              :track-event #(analytics/track (assoc % :current-state @state))}

(defn find-app-container []
  (goog.dom/getElement "app"))

(defn main [state ab-tests top-level-node history-imp]
  (let [comms       (:comms @state)
        container   (find-app-container)
        uri-path    (.getPath utils/parsed-uri)

  (support/enable-one!)
  (let [state (app-state)
        top-level-node (find-top-level-node)
        history-imp (history/new-history-imp top-level-node)]
    ;; globally define the state so that we can get to it for debugging
    (set! state/debug-state state)
    (browser-settings/setup! state)
    (main state top-level-node history-imp)
    (if-let [error-status (get-in @state [:render-context :status])]
      ;; error codes from the server get passed as :status in the render-context
      (put! (get-in @state [:comms :nav]) [:error {:status error-status}])
