The Observer pattern example