refactoring to embed the notification calls inside an intermediate object to allow tracking