#20 - Type Descriptor refactor