Replace Hard-Coded Notifications With Observer

Problem:

Subclasses are hard-coded to notify a single instance of another class.

Solution:

Remove the subclasses by making their superclass capable of notifying one or more instances of any class that implements an Observer interface.