 (let [method-calls (atom {})]
   (defn introspect-function
     [caller method args return-value]
-    (let [descriptor          [(.getClass caller) (.getName method)]
+    (let [descriptor          [(-> caller .getClass .getName) (.getName method)]
           current-call-types  (conj (mapv type args) (type return-value))
           previous-call-types (get @method-calls descriptor)]
 

               [descriptor]
               #(conj (or % #{}) current-call-types)))))

  (defn get-method-calls
    []
    @method-calls)

  (defn t
    ([f-name]
       (t (.getClass f-name) "invoke"))
    ([klass method]
       (let [calls (get @method-calls [klass method])]
         (if (not (empty? calls))
           (doseq [call calls]
             (println (format-signature call)))

  (println "|_|_| |_|\\__|_|  \\___/|___/ .__/ \\___|\\___|\\__|")
  (println "                          |_|                  ")


  (binding [*compile-path* (str (System/getProperty "user.dir") "/target/classes")]
    (doseq [n (clojure.string/split agent-args #";")]
      (introspect-namespace n)))

  (.addShutdownHook (Runtime/getRuntime)
                    (Thread. #(println (format-report)))))
