Added Observer with tests and demo.