     (doseq [[property-kw value] entity-record]
       (let [property-name (.substring (str property-kw) 1)]
         (.setProperty entity property-name (coerce-clojure-type value))))
-    (.put (get-datastore-service) entity)))
+    entity))
+
+
+(defn save!-helper [entity-record]
+  (.put (get-datastore-service) (get-entity-object entity-record)))
+
+
+(defn- save-many-helper! [entity-record-seq]
+  (let [entities (map get-entity-object entity-record-seq)]
+    (.put (get-datastore-service) entities)))
+
+
+(extend-type Iterable
+  EntityProtocol
+  (save! [this] (save-many-helper! this)))
 
 
 (defn retrieve [entity-record-type key-value &

    "Returns nil if no tag is specified in the record definition, and no :key
     metadata exists. Otherwise returns a Key object. Specify optional entity
     group parent.")
  (save! [this]
    "Writes the given entity to the data store."))


                   "entity has no valid :key metadata, and has no fields marked :key")))))


(defn get-entity-object-helper [entity-record kind]
  (let [key-object (get-key-object entity-record)
        entity (if key-object
                   (Entity. key-object)
