        (clear-screen options)
        (let [f (start-flusher (:flush-interval options 10))
              t0 (System/nanoTime)
-             test-run (run-tests ns-re (:parallelism options (default-pharrallelism)))
+             test-run (run-tests ns-re (:parallelism options (default-pharrallelism)) (options->prioritizer options))
              t1 (System/nanoTime)
              results {:test-run test-run
                       :test-runner-state (if *test-runner-state* @*test-runner-state*)

(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))))

;; clojure.test monkey punching
(defmethod clojure.test/assert-expr '= [msg [_ a & more]]

     (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
