Observer pattern is added.