Refactor introspection to its own class