add compiler (with some loose ends)