          max-path)
        (zip/next loc)))))
 
+(defn compute-impact-forest [source]
+  (let [source-origins (mc/find-maps db "origins" {:source source})]
+    (vec (pmap compute-impact-tree source-origins))))
+
 
 (defn example-tree []
-  (let [tree (compute-impact-tree (mc/find-map-by-id db "origins" (ObjectId. "53de1541657a439ad20d6859")))] ; alternativ "53de3d68657a74caed255892" "53d7a7ad657ad4126658d0ba" "53de089f657a439ad20d6133"
+  (let [tree (compute-impact-tree (mc/find-map-by-id db "origins" (ObjectId. "53e4a2f8e4b04c026f6f5a3d")))] ; alternativ "53de3d68657a74caed255892" "53d7a7ad657ad4126658d0ba" "53de089f657a439ad20d6133"
     {:graph (simplify-tree tree)
      :height (tree-height tree)
      :size (compute-dfs tree)}))

    {:graph (simplify-tree tree)
     :height (tree-height tree)
     :size (compute-dfs tree)}))


;; --- MONGO DATA EXPORT/IMPORT ---

  [tree]
  (loop [pub-time (-> (zip/root tree) :source :ts)
         hashtags []
       ;;  tokens []
         loc tree]
    (if (zip/end? loc)
      {:root (zip/root loc)
       ;; :tokens nil (frequencies tokens)
       :hashtags (frequencies (map :text hashtags))}
      (recur
       pub-time
       (if-let [node (zip/node loc)]
         (->> node :tweet :entities :hashtags (into hashtags))
         hashtags)
       #_(if (zip/node loc)
         (conj tokens (clojure.set/difference (into #{} (-> loc zip/node :tweet :text tokenize)) (first tokens)))
         tokens)
       (if (nil? (zip/node loc))
         (zip/next loc)
