Simplify base

I don't think we need metaclasses to deal with the parameters. And since metaclasses should not be used unless they are absolutely necessary I made this PR. Plus I find the code simpler and we drop one dependency.