template-directed synthesis