separate compilation phases