                   r
                   (inconsistent (str "can't read " (:value op)
                                       " from register " value)))
-          :hset  (let [[new-member new-value] (:value op)]
-                     (CellRegister. value (assoc hashtable new-member new-value) list set zset ))
-          :hget  (let [[new-member new-value] (:value op)]
-                    (if (= (get hashtable new-member) new-value)
+          :hset  (let [ [new-member new-value] (:value op)]
+                    (do (tables-set new-member new-value)
+                        (CellRegister. value  (tables-count))))
+          :hget  (let [ [new-member new-value] (:value op)]
+                    (if  (= (tables-get new-member) new-value)
                           r
-                          (inconsistent (str "can't read " (:value op)
-                                        " from register " value))))
+                          (do ;(throw (ex-info (str "hget wrong, new-member " new-member
+                              ;         " tables-get from register: " (tables-get new-member)
+                              ;        " client get new-value " new-value) {}))
+                              (inconsistent (str "hget wrong, new-member " new-member
+                                        " tables-get from register: " (tables-get new-member)
+                                        " client get new-value " new-value)))
+                    ))
+          :final (do (def tables (transient {})) r)
                           ))
   Object
   (toString [this] (pr-str "value:" value " hashtable:" hashtable)))
 
 (defn elasticell-register
-  "A register"
+  "A cell register"
   ([] (elasticell-register nil))
-  ([value] (CellRegister. value {} nil nil nil)))
+  ([value] (do (info "call elasticell-register") (CellRegister. value 0)) ))
+
+(defn nemesis-gen
+  "A generator which emits a start after a t1 second delay, and then a stop
+  after a t2 second delay."
+  []
+  (gen/seq [
+	(gen/sleep 1)
+        {:type :info :f :start}
+	(gen/sleep 2)
+        {:type :info :f :paused}
+	(gen/sleep 3)
+        {:type :info :f :stop}
+	(gen/sleep 4)
+        {:type :info :f :resumed}
+       ])
+)
 
 (defn elasticell-test
   "Given an options map from the command-line runner (e.g. :nodes, :ssh,

  [conn]
  (reify client/Client
    (setup! [_ test node]
      ;(client (wcar* (car/flushall))
      (client (wcar* (car/set "start" ""))
    ))

    (invoke! [this test op]
      (let [[k v] (:value op)

  [s]
  (when s (Long/parseLong s)))

(def server1-conn {:pool {:max-total 8} :spec {:host "n9" :port 6379 :timeout-ms 3000}})	;time out shreshold for the client connection or read ops
(defmacro wcar* [& body] `(car/wcar server1-conn ~@body))

(defn client
