Modify Observer so that each object that extends it can have its own list of pub/sub events.