Some good refactoring, allowing type provider to execute through the cgen without compiling