added a simple implementation of an observable and an observer