new interface for compiler