listenForNotification now returns a signal rather than takes a block