                                    (some-> http-body parse-body)
                                    {:follow-redirects false
                                     :throw-exceptions false})
-            request-invoker (build-request-invoker http-method url request-options)
+
+            [request-invoker custom-invoker-name] (if-not (nil? invoker-builder)
+                                                    [(let [build-custom-request-invoker (eval (read (PushbackReader. (io/reader invoker-builder))))]
+                                                       (build-custom-request-invoker http-method url request-options))
+                                                     invoker-builder]
+                                                    [(build-default-request-invoker http-method url request-options)
+                                                     nil])
 
             [parsed-handler custom-handler-name] (if-not (nil? handler)
                                                    [(eval (read (PushbackReader. (io/reader handler))))


   [nil "--handler HANDLER" "Custom handler file."
    :id :handler
    :default nil]

   ["-h" "--help"]

        (println (str requests " requests spread over " seconds " seconds."))
        (if verbose (println (str "Request options: " request-options)))
        (if custom-handler-name (println (str "Using custom handler: " custom-handler-name)))
        (if custom-invoker-name (println (str "Using custom request invoker: " custom-invoker-name)))
        (println "")
        (let [load-test-results (load-test-url request-invoker
                                               requests
