public List<Stock> getStocks(List<String> symbols)
			throws SymbolNotFoundInNasdaq {

		// save data to tmp list, after update done, point with service list to
		// tmp...
		List<Stock> ret = new LinkedList<Stock>();

		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < symbols.size(); i++) {

			// if(i > 100) break;

			sb.append(ESCAPING);
			sb.append(symbols.get(i));
			sb.append(ESCAPING);
			sb.append(",");

			// on batch size limit - send an HTTP request to fetch next symbols
			// batch.
			if (i != 0 && i % STOCK_UPDATE_BATCH_SIZE == 0) {

				try {
					ret.addAll(doCall(sb));
				} finally {
					// reset string builder.
					sb = new StringBuilder();
				}
			}
		}

		// deal with last batch
		if (sb.length() > 0)
			ret.addAll(doCall(sb));

		return ret;
	}