                               #(mc/find-map-by-id @db "messages" (:target %)))))
         nodes (->> links
                    (apply concat)
-                   (map (comp (fn [{:keys [_id text group ts]}]
+                   (pmap (comp (fn [{:keys [_id text group ts]}]
                                 {:name _id :value text :group group :ts ts})
                               (fn [{:keys [source group]}]
                                 (assoc (mc/find-map-by-id @db "messages" source) :group group)))))]
     {:nodes (mapv #(update-in % [:name] str) nodes)
      :links (->> links
                  (pmap
-                  (comp
-                   #(mapv (comp (fn [l] (update-in l [:source] str))
-                                (fn [l] (update-in l [:target] str))) %)
-                   #(remove (fn [l] (= (:name user-node) (:target l))) %)))
-                 vec)
-     #_(mapv
-        (comp #(update-in % [:source] str)
-              #(update-in % [:target] str))
-        (remove #(= (:name user-node) (:target %)) links))}))
+                  #(remove (fn [l] (= (:name user-node) (:target l))) %)
+                  ;; only for frontend visualisation needed
+                  #_(comp #(mapv (comp (fn [l] (update-in l [:source] str))
+                                       (fn [l] (update-in l [:target] str))) %))) 
+                 vec)}))
 
 
 (comment

              #(->> (get-user-tree (:name %)))
              news-authors))))

  (->> (get compounds "SZ")
       :links
       first
       count)
  
  (ap)


(defn find-links [{:keys [source target group ts] :as link}]
  (let [colls {"replies" 3 "retweets" 4 "shares" 5}]
    (conj (apply concat
                 (pmap (fn [coll]
                        (apply concat
                               (pmap
                                (fn [{:keys [source target ts]}]
                                  (find-links {:source source
                                               :target target
