I know. it’s a little recursive.
Nevertheless, I’ve been working with @rendhalver on AbstractIT-Puppet. It’s coming along quite nicely.
Have a look. Hopefully, it suits your needs as as well.
If not… We’d love your help to make This module more awesome.