change children query to be executed via XPath
refactoring showing that multi and single matcher have in common more than you thought
Better error reporting