Added the Observer pattern.