       name: name,
       version: version,
       description: module.description(),
-      implements: module.implements()
+      implements: normalized_implements(module)
     }
 
     {:ok, plugin}

    end
  end

  @spec update_agent([Plugin.t()]) :: :ok
  defp update_agent(plugins) do
    Agent.update(Plugin, fn _ -> %{} end)


  @serum_version Version.parse!(Mix.Project.config()[:version])
  @elixir_version Version.parse!(System.version())

  @old_callback_arities %{
    build_started: 2,
    reading_pages: 1,
    reading_posts: 1,
    reading_templates: 1,
    processing_page: 1,
    processing_post: 1,
    processing_template: 1,
    processed_page: 1,
    processed_post: 1,
    processed_template: 1,
    processed_list: 1,
    processed_pages: 1,
    processed_posts: 1,
    rendering_fragment: 2,
    rendered_fragment: 1,
    rendered_page: 1,
    wrote_file: 1,
    build_succeeded: 2,
    build_failed: 3,
    finalizing: 2
  }

  @spec load_plugins([Plugin.spec()]) :: Result.t([Plugin.t()])
  def load_plugins(modules) do
