                           :published 0
                           :last_received 0
                           :recipient_count 0}
-                          (apply merge-with (cons concat (map parser related))))
+                          (apply merge-with (cons concat (map parser (cons badge related)))))
            :issued_on  (u/str->epoch (:issuedOn assertion))
            :expires_on (u/str->epoch (:expires assertion))
            :evidence evidence)))
+
 ;;;
 
 (defmethod badge-content :default [initial assertion]

                                                            :mtime now}) (:evidence assertion))
                   :else [])
        badge  (if (map? (:badge assertion)) (:badge assertion) (http/json-get (:badge assertion)))
        related (filter #(keyword "@language") (cons badge (get badge :related [])))
        default-language (get badge (keyword "@language") "")]

    (assoc initial
           :badge (merge {:id ""
                          :remote_url nil


(defmethod verify-assertion :v2.0 [url asr]
  (let [kind (get-in asr [:verify :type] (get-in asr [:verification :type]))]
    (when (and (not (nil? url)) (or (= kind "hosted") (= kind "HostedBadge")))
      (if (not= (:id asr) url)
        (throw (IllegalArgumentException. "invalid assertion, verify url mismatch")))
      (if (map? (:badge asr))
        (if (not= (domain (get-in asr [:badge :id])) (domain (:id asr)))
          (throw (IllegalArgumentException. "invalid assertion, verify url mismatch")))
        (if (not= (domain (:badge asr)) (domain (:id asr)))
          (throw (IllegalArgumentException. "invalid assertion, verify url mismatch")))))))

(defmethod verify-assertion :default [url asr]
