             (get-in @data [:automaton :specific :corp-quantity] 4)
             year-period
             (get-in @data [:automaton :specific :year-period] 12)
+            stop-after
+            (get-in @data [:automaton :specific :stop-after] 0)
             iteration
             (get-in @data [:automaton :util :iteration] 0)
             corps (corps corp-quantity)
             competitor-count
             (count (filter (fn [[k v]] (>= v 0))
                            (dissoc (:capital msg) :government)))
-            command-info-c (om/get-state owner :command-info-channel)]
-        (when (zero? (mod iteration (/ year-period 2)))
-          (doseq [corp corps]
-            (let [cmd
-                  (update-in (a/conservative-corp-price
-                              (cons competitor-count
-                                    ((juxt (:global-user-share msg)
-                                           (:capital msg)
-                                           (:capital-diff msg)
-                                           (:prices msg))
-                                     corp)))
-                             [:cmd]
-                             (fn [p] [corp p]))]
-              (put! command-info-c cmd))))
-        (when (zero? (mod iteration year-period))
-          (doseq [corp corps]
-            (let [cmd
-                  (update-in (a/conservative-corp-tax
-                              (:tax-rate msg)
-                              (:income-tax-rate msg)
-                              (:fixed-tax msg)
-                              (get-in msg [:capital-incomings corp])
-                              (get-in msg [:capital-expenditures corp]))
-                             [:cmd]
-                             (fn [p] [corp p]))]
-              (put! command-info-c cmd))))
+            command-info-c (om/get-state owner :command-info-channel)
+            started-c (om/get-state owner :started)]
+        (if (and (not (= stop-after 0))
+                 (>= iteration stop-after))
+          (put! started-c false)
+          (do
+            (when (zero? (mod iteration (/ year-period 2)))
+              (doseq [corp corps]
+                (let [cmd
+                      (update-in (a/conservative-corp-price
+                                  (cons competitor-count
+                                        ((juxt (:global-user-share msg)
+                                               (:capital msg)
+                                               (:capital-diff msg)
+                                               (:prices msg))
+                                         corp)))
+                                 [:cmd]
+                                 (fn [p] [corp p]))]
+                  (put! command-info-c cmd))))
+            (when (zero? (mod iteration year-period))
+              (doseq [corp corps]
+                (let [cmd
+                      (update-in (a/conservative-corp-tax
+                                  (:tax-rate msg)
+                                  (:income-tax-rate msg)
+                                  (:fixed-tax msg)
+                                  (get-in msg [:capital-incomings corp])
+                                  (get-in msg [:capital-expenditures corp]))
+                                 [:cmd]
+                                 (fn [p] [corp p]))]
+                  (put! command-info-c cmd))))))
         (om/transact! data (fn [d] (assoc d :market-state msg)))))
     (automaton-output-view [_] market-output-view)
     (automaton-output-reset [_ data _]

                  (gen-app-view
                   a/market-model market-model-customization)
                  {:corp-quantity 4
                   :year-period 12}))))))

(defn render-menu-view
  []

      [_]
      {:config-changed (chan)
       :year-period (:year-period data)
       :stop-after (:stop-after data)
       :corp-quantity (:corp-quantity data)})
    om/IWillMount
    (will-mount [_]
