   end
 
   describe "handle_event/3, with an open span" do
-    setup do
+    setup %{pid: pid} do
       parent = self()
 
-      pid =
-        spawn(fn ->
-          span = Tracer.create_span("background_job")
-          send(parent, span)
-          raise "Exception"
-        end)
+      Murphy.call(pid, fn ->
+        span = Tracer.create_span("background_job")
+        send(parent, span)
+        raise "Exception"
+      end)
 
       span =
         receive do
           span -> span
         end
 
-      [pid: pid, span: span]
+      [span: span]
     end
 
     test "adds an error to the existing span", %{span: span} do

  end

  describe "handle_event/3, with a :badarg" do
    setup do
      pid =
        spawn(fn ->
          :erlang.error(:badarg)
        end)

      [pid: pid]
    end

    test "creates a span", %{pid: pid} do

  end

  describe "handle_event/3, when no span exists" do
    setup %{pid: pid} do
      Murphy.call(pid, fn -> raise "Exception" end)

      :ok
    end

    test "creates a span", %{pid: pid} do
