Protocols and inheritance