added observer design pattern with complete sample of implementation without using JAVA API
improved tests and fine tune the behaviour of the definition
improved tests and fine tune the behaviour of the definition