Observer design pattern added.