       ;          (m/replica-version (:messenger (:state event)))
       ;          (m/epoch (:messenger (:state event)))
       ;          (:job-id event) extent-state)
-      (swap! state-atom assoc (:job-id event) extent-state))))
+      (swap! state-atom assoc [(:job-id event) (:slot-id event)] extent-state))))
 
 (defn simple-job-def [job-id]
   (let [n-messages 200

    (prop-is (= (set expected-outputs) (set flow-outputs)) "messenger flow values incorrect")
    ;(println "Expected: " expected-outputs)
    ;(println "Outputs:" actual-outputs)
    #_(check-outputs-in-order! peer-outputs)))

(defspec deterministic-abs-test {;:seed X 
                                 :num-tests (times 200)}

    (prop-is (= (count jobs) (count (:completed-jobs replica))) "jobs not completed")
    (prop-is (= (count (:groups model)) (count (:groups replica))) "groups check")
    (prop-is (= (count (:peers model)) (count (:peers replica))) "peers")
    ;(println "STATE ATOM" @state-atom)
    (let [state-values (reduce into [] (vals @state-atom))]
      (prop-is (= (count (set state-values)) (count state-values)) "not enough state values")
      (prop-is (= (set expected-state) (set state-values)) 
               (str "incorrect state "
                    (vec (take 2 (clojure.data/diff (set expected-state) (set state-values)))))))
    (prop-is (= expected-state 
                ;; Potentially should check for state ordering here
                (set (:extent-state 
