Aha! I didn't see that sometimes we pass in a different list of listeners. Could you make `SafeNotifier` a static class and remove the no-arg constructor? I think that would make what's going on more obvious and it would also make `SafeNotifer` "safer" because it wouldn't have access to the fields in the outer class.