 (defn create-db
   "Creates the in memory store."
   []
-  (map->InMemoryStore {:concepts (atom {})}))                      
+  (map->InMemoryStore {:concept-id-seq (atom 0) :concepts (atom {})}))                      
   
    (validate-concept concept)
    (let [{:keys [concept-type concept-id revision-id]} concept
          concepts (:concepts this)
          concept-map (get @concepts concept-type)
          revisions (get concept-map concept-id [])]
      (when (and revision-id
                 (not= (count revisions) revision-id))

            [cmr.common.services.errors :as errors]
            [clojure.pprint :refer (pprint pp)]))

;;; Constants

(def concept-id-prefix-length 2)

;;; Uitility methods

(defn- concept-type-prefix
  "Truncate to four characters and upcase a concept-type to create a prefix for concept-ids"
  [concept-type-keyword]
  (let [concept-type (name concept-type-keyword)]
    (string/upper-case (subs concept-type 0 (min (count concept-type) concept-id-prefix-length)))))

(defn- save 
  "Save a concept"
  [concept-atom concept concept-type concept-map concept-id revisions]
  (let [new-revisions (conj (or revisions []) concept)
        new-concept-map (assoc concept-map concept-id new-revisions)]
    (swap! concept-atom assoc (concept-type-prefix concept-type) new-concept-map)
    (dec (count new-revisions))))

(defn- validate-concept
