notification refactoring