same observe! API as iOS version