       (is (= '(:candidate :follower :follower) (fields-by-id s1 :type)))
       (is (= '(1 0 0) (fields-by-id s1 :current-term)))
       (is (= '({:dst "1.localnet:1" :src "0.localnet:0" :type :request-vote
-                :body {:term 1 :candidate-id "0.localnet:0", :prev-log-index 0
+                :body {:term 1 :candidate-id "0.localnet:0", :prev-log-index 1
                        :prev-log-term 0}}
                {:dst "2.localnet:2" :src "0.localnet:0" :type :request-vote
-                :body {:term 1 :candidate-id "0.localnet:0", :prev-log-index 0
+                :body {:term 1 :candidate-id "0.localnet:0", :prev-log-index 1
                        :prev-log-term 0}}) (sort-queue (:tx-queue (get (:servers s1) (s-at 0))))))))
   (testing "step 2 - peers respond to request vote"
     (let [s2 (->> (test-cluster 3)

                 (until-empty)
                 (step 150)
                 (until-empty))]
      (is (= '(1 1 1) (fields-by-id s :commit-index))))))

(deftest test-election-responses
  (testing "election with one server not responding"


(defn test-cluster [n]
  (let [c (create 8090 n)]
    (assoc-in c [:servers "0.localnet:0" :election-timeout] 0)))

(defn create-and-elect []
  (until-empty (step 50 (until-empty (test-cluster 3)))))

(deftest simple-things
  (testing "everyone's type"
