Added Observer functionality