restructure to handle jabber rejoin