public synchronized Token nextToken() {
		while (active && queue.isEmpty()) {
			try {
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}

		if (!queue.isEmpty()) {
			final Token next = queue.remove(0);
			// System.out.println(name + " >> " + next);
			return next;

		} else {
			// System.out.println(name + " >> null");
			return null;
		}
	}