Protein design: template-assembled synthetic proteins.