Protocol  vs subclasses - Modified version in .txt form