Observer Pattern implemented.