 
 
 (defn sim-conv
-  [& {:keys [n-grps grp-dists n-ptpts n-cmnts] :or {n-grps 3 n-ptpts 0 n-comnts 0}}]
-  (-> {:groups (repeat n-grps (new-group))
+  [& {:keys [zid n-grps grp-dists n-ptpts n-cmnts] :or {n-grps 3 n-ptpts 0 n-comnts 0}}]
+  (-> {:zid (or zid (rand-int 1000))
+       :groups (repeat n-grps (new-group))
        :unvoted []
        :members [] ; actually a map of member indices to group indices
        :comments 0

                  (fn [[m c]]
                    (let [grp-i (get-in conv [:members m])
                          grp ((:groups conv) grp-i)]
                      {:pid m :tid c :vote (cast-vote! grp c)}))
                  picks)]
      ; Return the new conversation state so it can be looped on
      [new-conv votes])))

    :ptpt-growth-fn (fn [conv] 10)
    :cmnt-growth-fn (fn [conv] 1)
    :poll-count-fn (fn [conv]
                     (+ 10 (int (/ (* (:comments conv) (inc (count (:members conv))))
                                10))))))

