Template-directed synthesis