refactoring to keep root QName