Observer pattern
Observer pattern on Error handling