enhanced Observable
added test cases for Observable