notification logic moved to controller
notification tests made idempotent