And added working introspection code to reduce class definitions.