This is a simple app on observer pattern, a nice software design pattern