   (loop [start-or-wake start-or-wake
          app-db app-db]
       (if-let [s (first start-or-wake)]
-        (let [[topic params] s]
-          (reporter :app :out :controller [topic reporter-action] params (reporter/cmd-info) :info)
-          (reporter :controller :in topic [:keecmha/lifecycle reporter-action] params (reporter/cmd-info) :info)
+        (let [[topic params] s
+              app-out-cmd-info (reporter/cmd-info)
+              controller-in-cmd-info (reporter/with-origin app-out-cmd-info)]
+          (reporter :app :out :controller [topic [:keechma/lifecycle reporter-action]] params app-out-cmd-info :info)
+          (reporter :controller :in topic [:keechma/lifecycle reporter-action] params controller-in-cmd-info :info)
           (let [controller (assoc (get controllers topic)
                                   :in-chan (chan)
                                   :out-chan commands-chan

    (loop [stop stop
           app-db app-db]
      (if-let [s (first stop)]
        (let [[topic params] s]
          (reporter :app :out :controller [topic :stop] params (reporter/cmd-info) :info)
          (let [controller (get running-controllers topic)
                _ (reporter :controller :in topic [:lifecycle :stop] (:params controller) (reporter/cmd-info) :info)
                new-app-db (-> (controller/stop controller (:params controller) app-db)
                               (dissoc-in [:internal :running-controllers topic]))]
            (close! (:in-chan controller))
            (recur (rest stop) new-app-db)))

     (if (= :route-changed command-name)
       (do
         (reporter :app :out :controller [(:name controller) command-name] args origin :info)
         (reporter :controller :in (:name controller) command-name cmd-info :info))
       (reporter :controller :in (:name controller) command-name args cmd-info :info))
     (put! (:in-chan controller) [command-name args cmd-info])
     controller)))
