Made Compiler independent of codegen and constrain