Initial commit of Observer pattern