notifications refactored