class Url implements Comparable<Url> {

    private Url(Builder builder) {
        this.scheme = builder.scheme;
        this.authority = builder.authority;
        this.path = builder.path;
        this.query = Optional.ofNullable(builder.queryBuilder).map(UrlQuery.Builder::build);
        this.fragment = builder.fragment;
    }

    private  Url(Builder builder);

}