   @doc false
   @spec start_link(binary(), binary()) :: {:ok, pid()} | {:error, term()}
   def start_link(src, site) do
-    Agent.start_link(fn -> {src, site} end, name: __MODULE__)
+    GenServer.start_link(__MODULE__, {src, site}, name: __MODULE__)
   end
 
   @impl Service

  A fake implementation of `Serum.DevServer.Service` behaviour for testing.
  """

  use Agent
  alias Serum.DevServer.Service

  @behaviour Service

  @impl Service
  @spec subscribe() :: :ok
  def subscribe, do: :ok

  @impl GenServer
  def init(args) do
    Process.flag(:trap_exit, true)

    {:ok, args}
  end

  @impl GenServer
  def handle_call(msg, from, state)
  def handle_call(:src, _, {src, _} = state), do: {:reply, src, state}
  def handle_call(:site, _, {_, site} = state), do: {:reply, site, state}

  @impl GenServer
  def terminate(_reason, {_, site}), do: File.rm_rf!(site)
end
