       ((fn [[weighted-avg cnt]]
         (div weighted-avg (* 1000 (min uptime 600))))))))
 
-(defn- page+comp-dispatch
-  [page-type comp-type & _]
-  [page-type comp-type])
-
-(defmulti agg-pre-merge
-  page+comp-dispatch)
-
-(defmethod agg-pre-merge [:component-page :bolt]
-  [_ _
-   {exec-id :exec-id
+(defn agg-pre-merge-comp-page-bolt
+  [{exec-id :exec-id
     host :host
     port :port
     uptime :uptime

(defmethod agg-comp-exec-stats :bolt
  [window include-sys? acc-stats new-data]
  (assoc (agg-bolt-exec-win-stats acc-stats (:stats new-data) include-sys?)
         :stats
         (merge-agg-comp-stats :component-page
                               :bolt
                               (:stats acc-stats)
                               (agg-pre-merge :component-page
                                              :bolt
                                              new-data
                                              window
                                              include-sys?))
         :type :bolt))

(defmethod agg-comp-exec-stats :spout
  [window include-sys? acc-stats new-data]
  (assoc (agg-spout-exec-win-stats acc-stats (:stats new-data) include-sys?)
         :stats
         (merge-agg-comp-stats :component-page
                               :spout
                               (:stats acc-stats)
                               (agg-pre-merge :component-page
                                              :spout
                                              new-data
                                              window
                                              include-sys?))
         :type :spout))

(defn- aggregate-comp-stats*

  [& args]
  (apply apply-or-0 max args))

(defn merge-agg-comp-stats-comp-page-bolt
  [{acc-in :cid+sid->input-stats
    acc-out :sid->output-stats
    :as acc-bolt-stats}
   {bolt-in :cid+sid->input-stats
