       items))))
 
 (defn explode-and-sort-by-schema [item schema]
+  "Take a (profile) item from the datastore and converts into a list
+  of pairs (represented as a vector) where the first element is the
+  exploded key for the attribute and the second is the value"
   (let [exploded-item
          (mapcat
            (fn [attr]

  Example:

  attribute type | attribute name              | exploded name              |
  standaed       | timestamp                   | timestamp                  |
  nested item    | profile_data, bedroom_count | profile_data_bedroom_count |
  association    | storeys, first storey_type  | storeys_0_storey_type      |"
  (reduce

                               (parse-by-schema body-map profile-schema))
                             decoded-body)]
              ;; We need to assert a few things

              (if (not= (:entity_id body) entity_id)
                true                  ; it's malformed, game over
                [false {:body body}]))  ; it's not malformed, return the body now we've read it
