add Compiler interface