Added observer pattern.