based on offline discussion, let's use `SettingsListener` for this case.