If the signature is switched to that it won't allow for the option of a non-lazy factory(well, it won't be factories at all at that point). Is it worth keeping them `Func<>` for the flexibility it provides as a public API?