Wrote the XMPP backend

Fixed the recycle bug too.