   def get_templates(nil), do: {:ok, []}
 
   def get_templates(module) do
-    case call_function(module, :get_templates, []) do
-      {:ok, paths} when is_list(paths) ->
+    case get_list(module, :get_templates, []) do
+      {:ok, paths} ->
         filtered_paths =
           paths
           |> Enum.map(&{Path.basename(&1, ".html.eex"), &1})

    end
  end

  @doc false
  @spec get_assets(t()) :: Result.t(binary() | nil)
  def get_assets(module)

  def get_includes(nil), do: {:ok, []}

  def get_includes(module) do
    case get_list(module, :get_includes, []) do
      {:ok, paths} ->
        {:ok, Enum.filter(paths, &String.ends_with?(&1, ".html.eex"))}

      {:error, _} = error ->
