implement observer pattern python