assignment 1

subclasses vs protocol