 
 (defn stop [& states]
   (let [states (or states (find-all-states))
-        _ (doall (map unsub states))     ;; unmark substitutions marked by "start-with"
+        _ (run! unsub states)     ;; unmark substitutions marked by "start-with"
         stopped (bring states down >)]
-    (doall (map rollback! states))       ;; restore to origin from "start-with"
+    (run! rollback! states)       ;; restore to origin from "start-with"
     {:stopped stopped}))
 
 (defn stop-except [& states]
   (let [all (set (find-all-states))
         states (remove (set states) all)
-        _ (doall (map unsub states))     ;; unmark substitutions marked by "start-with"
+        _ (run! unsub states)     ;; unmark substitutions marked by "start-with"
         stopped (bring states down >)]
-    (doall (map rollback! states))       ;; restore to origin from "start-with"
+    (run! rollback! states)       ;; restore to origin from "start-with"
     {:stopped stopped}))
 
 (defn start-with-args [xs & states]

    (start)))

(defn start-with [with]
  (doall
    (for [[from to] with]
      (substitute! from to)))
  (start))

(defn start-without [& states]

  (let [done (atom [])]
    (->> states
         (sort-by (comp :order meta) order)
         (run! #(fun % (meta %) done)))
    @done))

(defn- merge-lifecycles
