Just out of curiosity...any reason `protocol` is a String and not an enum of some kind?