class HttpQuery implements Iterable<Map.Entry<String, String>> {

    public HttpQuery set(final String key, final String value) {
        validateQueryParam(key, value);
        final ArrayList<String> list = new ArrayList<>(DEFAULT_LIST_SIZE);
        final boolean changed = list.add(value);
        params.put(key, list);
        if (changed) {
            updateQueryParams();
        }
        return this;
    }

      HttpQuery(final Map<String, List<String>> params, final Consumer<Map<String, List<String>>> queryParamsUpdater);

}