public compile