adding notifiers abstraction