optimize subscribers calling, refactoring