The following switch/case may change the the value *_buffer_, so I have to declare here to determine if this object is already added to provider as an observer.