Main compiler