What's this class called `Protocol`?