rework notifications infrastructure