XMPP client and then some