Don't the base classes do this? I don't think you need to removeObserver everywhere