Refactored the compiler interface a bit.