- created own classes for the protocol