     |> case do
       {:ok, outputs} ->
         create_dirs(outputs)
-        Enum.each(outputs, &FileOutput.perform_output!/1)
+        Enum.each(outputs, &Serum.File.write/1)
 
       {:error, _} = error ->
         error
     end
   end
 
-  @spec render(Fragment.t(), Template.t()) :: Result.t(FileOutput.t())
+  @spec render(Fragment.t(), Template.t()) :: Result.t(Serum.File.t())
   defp render(fragment, template) do
     bindings = [
       page: fragment.metadata,

    end
  end

  @spec create_dirs([FileOutput.t()]) :: :ok
  defp create_dirs(outputs) do
    outputs
    |> Stream.map(& &1.dest)

defmodule Serum.Build.Pass3 do
  alias Serum.Fragment
  alias Serum.Renderer
  alias Serum.Result
