Add Observer Pattern

Add Observer Pattern