          :ok <- Plugin.build_started(src, dest),
          :ok <- pre_check(dest),
          :ok <- do_build(proj),
-         :ok <- copy_assets(src, dest, proj.theme),
+         :ok <- copy_files(src, dest, proj.theme),
          :ok <- Plugin.build_succeeded(src, dest),
          :ok <- Plugin.finalizing(src, dest) do
       {:ok, dest}

    end
  end

  @spec try_copy(binary, binary) :: :ok
  defp try_copy(src, dest) do
    case File.cp_r(src, dest) do
      {:error, reason, _} ->

    |> Result.aggregate(:clean_dest)
  end

  @spec copy_files(binary(), binary(), Theme.t()) :: Result.t()
  defp copy_files(src, dest, theme) do
    case copy_theme_assets(theme, dest) do
      :ok ->
        copy_assets(src, dest)
        do_copy_files(src, dest)

      {:error, _} = error ->
        error
