code: public INode getNode(final INode node, String path) {
  		final List<String> split = Strings.split(path, '/');
  		INode result = node;
  		for (String string : split) {
  			String trimmed = string.trim();
  			if (trimmed.length() > 0) {
  				if ("..".equals(trimmed)) {
  					if (result.getParent() == null)
  						throw new IllegalStateException("node has no parent");
  					result = result.getParent();
  				} else {
  					int index = Integer.parseInt(string);
  					if (index >= 0) {
  						INode child = ((ICompositeNode) result).getFirstChild();
  						while(index > 0) {
  							child = child.getNextSibling();
  							index--;
  						}
  						result = child;
  					}
  				}
  			}
  		}
  		return result;
  	}
docs: ONLY public to be testable