Instead of AddListener I made AddChangeCallback. And removed unnecessary dependencies.
Reworked the architecture.