added support for open generic types
moved config types to own namespace