Observer pattern was implemented in the client side