private XMLDocument loadData(Document document) throws XMLException {
		
		XMLDocument result = new XMLDocument();		
		Queue<QueueTuple> queue = new LinkedList<QueueTuple>();
		queue.offer(new QueueTuple(document.getFirstChild(), null));
		while (!queue.isEmpty()) {
			
			Node temp = queue.peek().getNode();
			XMLElement parent = queue.peek().getParent();
			queue.poll();
			
			Map<String, String> propertiesData = PropertiesManipulator.extractConfiguration(getAddress(temp));
			XMLElement element = createXMLElement(temp, propertiesData);
			
			// processing error
			if (element == null) {
				log.severe("Process problem with creating XMLElement (probably configuration in properties file is missing)");
				throw new XMLException("Process problem with creating XMLElement (probably configuration in properties file is missing)");
			}
			
			// setting parent
			if (parent == null) {
				result.setJbossesb(element);
			} else {
				parent.addChildElement(element);
			}
			
			// enqueue child nodes
			Node child = temp.getFirstChild();
			while (child != null) {				
				if (child.getNodeType() == Node.ELEMENT_NODE) {
					queue.offer(new QueueTuple(child, element));
				}
				child = child.getNextSibling();
			}
		}
		
		log.info("Loading configuration file ... OK");
		
		return result;
	}