Index: html/flit.html
==================================================================
--- html/flit.html
+++ html/flit.html
@@ -35,15 +35,27 @@
 <span>def <span class="ident">inject</span></span>(<span>where)</span>
 </code></dt>
 <dd>
 <div class="desc"><p>monkeypatch into module</p></div>
 </dd>
+<dt id="pluginconf.flit.make_metadata"><code class="name flex">
+<span>def <span class="ident">make_metadata</span></span>(<span>module, ini_info)</span>
+</code></dt>
+<dd>
+<div class="desc"><p>@inject different sourcing order to apply plugin meta fields</p></div>
+</dd>
 <dt id="pluginconf.flit.pmd_meta"><code class="name flex">
 <span>def <span class="ident">pmd_meta</span></span>(<span>pmd, ini)</span>
 </code></dt>
 <dd>
-<div class="desc"><p>enjoin PMD fields with flit meta data</p></div>
+<div class="desc"><p>enjoin PMD fields with flit.common.MetaData</p></div>
+</dd>
+<dt id="pluginconf.flit.read_flit_config"><code class="name flex">
+<span>def <span class="ident">read_flit_config</span></span>(<span>path)</span>
+</code></dt>
+<dd>
+<div class="desc"><p>@inject read_flit_config() with forced dynamic fields</p></div>
 </dd>
 </dl>
 </section>
 <section>
 </section>
@@ -60,11 +72,13 @@
 </ul>
 </li>
 <li><h3><a href="#header-functions">Functions</a></h3>
 <ul class="">
 <li><code><a title="pluginconf.flit.inject" href="#pluginconf.flit.inject">inject</a></code></li>
+<li><code><a title="pluginconf.flit.make_metadata" href="#pluginconf.flit.make_metadata">make_metadata</a></code></li>
 <li><code><a title="pluginconf.flit.pmd_meta" href="#pluginconf.flit.pmd_meta">pmd_meta</a></code></li>
+<li><code><a title="pluginconf.flit.read_flit_config" href="#pluginconf.flit.read_flit_config">read_flit_config</a></code></li>
 </ul>
 </li>
 </ul>
 </nav>
 </main>

Index: pluginconf/flit.py
==================================================================
--- pluginconf/flit.py
+++ pluginconf/flit.py
@@ -48,15 +48,17 @@
 #-- patchy patch
 def inject(where):
     """ monkeypatch into module """
     def wrapped(func):
         setattr(where, func.__name__, func)
+        wrapped.__doc__ = func.__doc__
+        return func
     return wrapped
 
 @inject(flit_core.config)
 def read_flit_config(path):
-    """ read_flit_config() with preset dynamic fields """
+    """ @inject read_flit_config() with forced dynamic fields """
     ini = flit_core.config.tomli.loads(path.read_text('utf-8'))
 
     # make fields dynamic
     if not "dynamic" in ini["project"]:
         ini["project"]["dynamic"] = []
@@ -71,11 +73,11 @@
     return flit_core.config.prep_toml_config(ini, path)
 
 # override make_metadata
 @inject(flit_core.common)
 def make_metadata(module, ini_info):
-    """ different order, and obviously sources """
+    """ @inject different sourcing order to apply plugin meta fields """
     meta = {
         "name": module.name,
         "provides": [module.name]
     }
     meta.update(ini_info.metadata)
@@ -91,11 +93,11 @@
         )
     return flit_core.common.Metadata(meta)
 
 # map plugin meta to flit Metadata
 def pmd_meta(pmd, ini):
-    """ enjoin PMD fields with flit meta data """
+    """ enjoin PMD fields with flit.common.MetaData """
     pmd = psetup.MetaUtils(pmd)
     meta = {
         "summary": pmd.description,
         "version": pmd.version,
         "home_page": pmd.url,
@@ -119,10 +121,11 @@
         "obsoletes_dist": (),
         "requires_external": (),
         "provides_extra": (),
     }
     print(meta)
+    print(pmd.install_requires())
 
     # comment/readme
     for docs in pmd.plugin_doc(), psetup.get_readme():
         if docs["long_description"]:
             meta.update({  # with "long_" prefix cut off