@JonB , ok this is another refinement. To make it more generic, as well as receiving events can also raise our own events via the same mechanism. It's sort of ok, but I know it lacks some finesse.
I know it's not great, but I feel it's getting there...
If anyone has some ideas about how to improve this idea, love to hear about it.