Use PresenceListener as intercepting callback interface. Remove the for-each loops in MultiUserChat by using the interception facilities of the XMPPConnection. Add ToFilter.