notifications refactor