There's no obligation for the child node of an IQ to be called "query", even though it's often the case (but sometimes not, e.g. "vCard"). So, provide a new method, Iq.getQuery(), that returns the IQ's child node, whatever its name is (or None if there's none). RFC 3920 states there can't be more than one child, so the method doesn't look past the first one. Also provide another new method, Iq.setQuery(), that renames or creates the query node. Iq.getQuery* and Iq.setQuery* now use those two new methods, so they can handle any IQ, not only those whose query node is called 'query'.