                                         decision))
                                       :url))
 
+                ;; add to paging-q if anything needs adding/removing
                 paging-q'    (concat (if (= :pagination queue-kw)
                                        (rest paging-q) paging-q)
                                      (distinct-by-key

                                 :pagination (rest paging-q)}
                                {:content (rest content-q)
                                 :pagination paging-q})
                  new-visited (conj visited url)
                  new-num-dec num-decisions
                  new-scr     sum-score
                  new-lim     (dec limit)]

  (if (and (not (zero? limit))
           (or (seq (-> queues :content))
               (seq (-> queues :pagination))))
    (let [content-q   (-> queues :content)         ; holds the content queues
          paging-q    (-> queues :pagination)      ; holds the pagination queues
          
          queue-kw    (cond
                       (empty? content-q)
                       :pagination

                       (empty? paging-q)
                       :content

                       :else
                       (if (even? (int (/ (count visited) 10)))
                         :pagination :content))

          queue       (queues queue-kw)

          url         (-> queue first :url)
          body        (-> url client/get :body)
          new-visited (conj visited url)
          paginated?  (-> queue first :pagination?)

          ;; extract from whatever needs extracting
          extracted   (extractor/extract-above-average-richest
                       body
                       (first queue)
                       (clojure.set/union visited queue))
          decision    (:decision extracted)
          xpaths      (map first decision)
          score       (:score extracted)]
      (do
        (println :total-score (/ sum-score num-decisions))
        (println :cur-page-score score)
