* Make protocol a template