notification refactored