let the client pick the protocol