private Articles queryArticles(Category category, Subcategory subcategory,
			String query, int count, DateTime since, ArticleOrder order,
			boolean titleOnly, Culture culture) {
		WebTarget target = root;

		if (category != null) {
			target = target.path("categories").path(
					Integer.toString(category.getId()));
			if (subcategory != null) {
				target = target.path("subcategories").path(
						Integer.toString(subcategory.getId()));
			}
		}
		if (query != null) {
			target = target.path("articles").path("search.json")
					.queryParam("q", query);
		} else {
			target = target.path("articles.json");
		}
		if (count != 0) {
			target = target.queryParam("count", count);
		}
		if (since != null) {
			target = target.queryParam("since", since
					.withZone(DateTimeZone.UTC).toString(DATE_FORMATTER));
		}
		if (order != null) {
			target = target.queryParam("order", order.name().toLowerCase());
		}
		target = target.queryParam("clientSource", clientSource).queryParam(
				"title_only", titleOnly ? 1 : 0);
		if (category == null && culture != null) {
			target = target.queryParam("culture_code", culture.getCode());
		}

		Articles articles = target.request().accept(MediaType.APPLICATION_JSON)
				.get(Articles.class);
		return articles;
	}