Uses abstract Observer class to help event chain

This impl. might get better by making Observer extend NullObject.
I think Observer could be changed to Object if you agree that
Objects need this functionality to support this pattern.