public DataItem navigate(String path) {
			if (path.equals(".") || path.length() == 0)
				return this;
			if (path.charAt(0) == '.')
				return navigate(path.substring(1));
			
			path = removeSlash(path);
			if (path.length() == 0)
				return this;
			int pos = path.indexOf('/');
			pos = pos == -1 ? path.length() : pos;
			String toNavigate = path.substring(0, pos);

			for (DataItem i : subItems) {
				if (i.getName().equals(toNavigate)) {
					if (pos >= path.length() - 1)
						return i;
					else
						return i.navigate(path.substring(pos));
				}
			}

			return null;
		}