first functional compile-time-generated providers.  the gen only works for basic cases, and not yet wiring them together