@Override
	public String toString() {
        boolean leadingSlash = isAbsolute;
       	if(isAbsolute && elements.size() > 0 && elements.get(0).matches("[a-zA-Z]\\:")) {
       		leadingSlash = false;
        }

       	boolean trailingSlash = false;
       	if(elements.size() == 1 && elements.get(0).matches("[a-zA-Z]\\:")) {
       		trailingSlash = true;
       	}

        StringBuilder sb = new StringBuilder();
        if(leadingSlash) {
        	sb.append("/");
        }
        for(int i = 0; i < elements.size(); i++) {
        	if(i > 0) {
        		sb.append("/");
        	}
        	sb.append(elements.get(i));
        }
        if(trailingSlash) {
        	sb.append("/");
        }

        return sb.toString();
    }