 (defn default-pharrallelism []
   (.. Runtime getRuntime availableProcessors))
 
-(defn run-tests
-  ([ns-re] (run-tests ns-re (default-pharrallelism)))
-  ([ns-re pharrallelism]
-   (-> (gather-tests ns-re)
-     deref
-     prioritize-tests
-     pour-tests-to-queue
-     (run-gathered-tests pharrallelism))))
+(defn run-tests [ns-re pharrallelism prioritizer]
+  (-> (gather-tests ns-re)
+    deref
+    prioritizer
+    pour-tests-to-queue
+    (run-gathered-tests pharrallelism)))
 
 ;; clojure.test monkey punching
 (defmethod clojure.test/assert-expr '= [msg [_ a & more]]

  :colored-printing : an boolean (defaults to true)

  sets if bolth will print results with color or not. Defaults to true.

  ## Returned value


     (if (#{:error :fail} (:result-type previous-result)) (:runtime previous-result))
     (:runtime previous-result)]))

(defn smart-prioritize-tests [tests]
  (if-let [results @state/*previous-test-run*]
    (let [mapped-results (into {} (map (fn [[k v]] [(str k) v]) results))
          prioritized
