add Observer Pattern - part 2