   "Finds all hashtags used in entries by finding the edges that originate from the
   :hashtags node."
   [current-state]
-  (let [g (:graph current-state)]
-    (set (map #(-> % :dest :tag) (uber/find-edges g {:src :hashtags})))))
+  (let [g (:graph current-state)
+        ltags (map #(-> % :dest :tag) (uber/find-edges g {:src :hashtags}))
+        tags (map #(:val (uber/attrs g {:tag %})) ltags)]
+    (set tags)))
 
 (defn find-all-mentions
   "Finds all hashtags used in entries by finding the edges that originate from the
   :hashtags node."
   [current-state]
-  (let [g (:graph current-state)]
-    (set (map #(-> % :dest :mention) (uber/find-edges g {:src :mentions})))))
+  (let [g (:graph current-state)
+        lmentions (map #(-> % :dest :mention) (uber/find-edges g {:src :mentions}))
+        mentions (map #(:val (uber/attrs g {:mention %})) lmentions)]
+    (set mentions)))
 
 (defn get-basic-stats
   "Generate some very basic stats about the graph size for display in UI."

  [graph entry]
  (let [tags (:tags entry)]
    (reduce (fn [acc tag]
              (let [tag (s/lower-case tag)]
                (-> acc
                    (uber/add-nodes :hashtags {:tag tag})
                    (uber/add-edges [{:tag tag} (:timestamp entry) {:relationship :CONTAINS}]
                                    [:hashtags {:tag tag} {:relationship :IS}]))))
            graph
            tags)))


        old-entry (when (uber/has-node? graph ts) (uber/attrs graph ts))
        tags-not-in-new (set/difference (:tags old-entry) (:tags entry))
        mentions-not-in-new (set/difference (:mentions old-entry) (:mentions entry))
        remove-tag-edges (fn [g tags k]
                           (reduce #(uber/remove-edges %1 [(:timestamp entry) {k %2}]) g tags))]
    (-> current-state
        (update-in [:graph] #(uber/add-nodes-with-attrs % [ts (merge old-entry entry)]))
        (update-in [:graph] remove-tag-edges tags-not-in-new :tag)
