   (:require
     ;[ankha.core :as ankha]
     [clairvoyant.core :as trace :include-macros true]
-    [cljs.core.async :refer [<! >! chan close! pipe put! sliding-buffer take! timeout]]
+    [cljs.core.async :refer [<! >! chan close! onto-chan pipe put! sliding-buffer take! timeout]]
     [clojure.string :as string]
     [goog.dom :as dom]
     [goog.object]

        ppf (str "PPF: " (/ (get-in state [:soa :prime-count]) (get-in state [:env :frame-count])))
        generation (str "Gen: " (get-in state [:gol :generation]))
        population (str "Pop: " (count (get-in state [:gol :cells])))
        display [f-count fps prime-count ppf generation population]]
    (set! (.-innerText (app-div)) (string/join ", " display))))

(defn render-cycle! [timestamp]

    (swap! state assoc-in [:app :update-soa?] true)
    (swap! state assoc-in [:soa :channel] primes)
    (poly/listen-next-tick! (partial update-soa! primes))))

(defn stop-soa! []
  (console/info "stop soa")
