refactored to new address classes
return xmpclient if wrong arguments are set