                              (twh/response-throw-error resp)))
                          twh/exception-rethrow)))
         tweets (->> (get-raw-tweets)
-                    (map (fn [m]
-                           {:id (:id m)
-                            :tags (->> m :entities :hashtags
-                                       (mapv :text))})))]
+                    (map format-tweet))]
     (if (= id (:id (first tweets)))
       (rest tweets)
       tweets)))

                                           twh/exception-rethrow))
        f (go-loop [s (json/parsed-seq r true)]
                   (when-not @end?
                     (>! chan (first s))
                     (recur (rest s))))]
    ;; TODO: There may be a small memory leak here: if statuses-filter
    ;;       is stopped in the middle of a JSON string, the lazy seq may

       :last-tweet-id (-> user :status :id)})
    (catch Exception _ nil)))

(defn format-tweet
  [t]
  {:id (:id t)
   :tags (->> t :entities :hashtags (mapv :text))})

(defn get-tweets-before-tweet-id
  [creds screen-name id]
  (let [get-raw-tweets
