   (client/get url {:as :json-string-keys}))
 
 (defn- is-valid-client?
-  [{:keys [address replications replicated? master-only-write?]}]
+  [{:keys [address replications replicated? master-only-writes?]}]
   {:pre [(not-nil? address) (not-nil? replications) 
-         (not-nil? replicated?) (not-nil? master-only-write?)]}
+         (not-nil? replicated?) (not-nil? master-only-writes?)]}
   true)
 
 (defn- no-retry-replicas

  :response-parser is a customer response parser fn."
  ([client operations]
   (bulk-operations client operations {}))
  ([client operations 
    {:keys [request-builder response-parser]
     :or {request-builder req/bulk-operations response-parser res/bulk-operations}}]
   {:pre [(client? client)
          (not-empty (filter 
                       (comp not nil?) 
                       (map (fn[op] 
                              (cond 
                                (= (:Method op) "PUT") (and (:Document op) (:Metadata op) (:Key op))
                                (= (:Method op) "DELETE") (:Key op))) operations)))]}
   (let [request (req/bulk-operations client operations)
         master-only-write? (:master-only-write? client)]
     (response-parser (if master-only-write? 
                        (no-retry-replicas request post-req)
                        (wrap-retry-replicas request post-req))))))



  Optionally takes a map of options.
  :replicated? is used to find replicated endpoints.
  :master-only-writes? is used to indicate that write operations only go to the master"
  ([url database]
   (client url database {}))
  ([url database {:keys [replicated? master-only-writes?] 
                  :or {replicated? false master-only-writes? true}}]
   (let [fragments (list url "Databases" database)
         address (clojure.string/join "/" fragments)
         load-replications (fn []
