refactoring to make the compiler interface a little more readable