added some synthesis procedures