     (validate-concept concept)
     (let [{:keys [concept-type concept-id revision-id]} concept
           concepts (:concepts this)
-          concept-map (get @concepts concept-type)
+          concept-map (get @concepts (concept-type-prefix concept-type))
           revisions (get concept-map concept-id [])]
       (when (and revision-id
                  (not= (count revisions) revision-id))

  data/ConceptStore
  
  (get-concept-id
    [this concept-type provider-id native-id])
  
  (get-concept
    [this concept-id, revision-id])
  
  (get-concepts
    [this concept-id-revision-id-tuples])

            [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
