compilation flow