factored out notifications into a separate ns, handle differently in controllers