Implemented some functional abstraction for obs