refactoring reflection types support