private Contact parseContact(final Node contactNode) {
// Removing from document for optimized XPath evaluation on large files
contactNode.getParentNode().removeChild(contactNode);
Contact contact = new Contact();
contact.setFirstName(evaluateXPath("first-name", contactNode));
contact.setLastName(evaluateXPath("last-name", contactNode));
parseEmailAddresss(contactNode, contact);
parsePhoneNumbers(contactNode, contact);
return contact;