Make protocol configurable