private Node retrieveNode(Node current, String nodePath)
	{
		if(nodePath.equals("") || nodePath.length() <=2){ //dealing with a root node
			return root;
		}
		
		else if (!nodePath.contains("\\")) //dealing with a top-tier node. Find it by searching among the children of the current root
		{
			Node[] children = current.getChildren();
			if (children != null)
			{
				for (Node n: children)
					if (n.getName().equalsIgnoreCase(nodePath))
						return n;
			}
		}
		
		else //dealing with a deep node. Traverse down the tree from the root node until it is found
		{
			String[] nodePath_split = nodePath.split("\\\\");
			Node[] children = current.getChildren();
			
			if (children != null)
			{
				String nextNodeName = nodePath_split[0];

				for (Node n: children)
					if (n.getName().equalsIgnoreCase(nextNodeName))
						return retrieveNode(n, nodePath.substring(nodePath.indexOf("\\")+1, nodePath.length()));
			}
			
		}
		return null;

	}