add stopObserving to prevent double registration