Changed the classes to self-independent with observers.