Replace Hard-Coded Notifications with Observer

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

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