fixed addObserver