if you make `MulticastChannel` generic and the listener as well you safe the hard cast in Shared... just like

`Shared extends MulticastChannel<MultiListener>`

...just an idea...