A bit like this?
I think the “Bind” and “Unbind” methods need to be replaced with events and connections