rework compiles
parser compiles after a rewrite