public ArrayList<String> getDomains() {
		ArrayList<String> result = new ArrayList<String>(this.amount);
		String domainName;
		long beforeExec;
		long afterExec;
		boolean isRegistered;

		for (int i = 1; i <= this.amount; i++) {
			domainName = this.gen.generate() + this.tld;

			beforeExec = System.currentTimeMillis();

			isRegistered = this.whois.isDomainRegistered(domainName);

			afterExec = System.currentTimeMillis();
			this.whoisRequestDuration += afterExec - beforeExec;
			this.whoisRequestAmount++;

			if (isRegistered) {
				i--;
				continue;
			}

			result.add(domainName);

			if (null != this.logger) {
				this.logger.log(Level.INFO, domainName);
			}
		}

		return result;
	}