ListenerQueue & its clients made generic