@SuppressWarnings("unchecked")
	public T getLast(int i) {
		// check if we have enough history
		if (i >= count.getValue()) {
			throw new NoSuchElementException();
		}

		// fetch the wanted value
		OverflowingInteger position = top.clone();
		position.decrement(i);
		//System.out.println("Reading data at " + position.getValue());
		return (T) data[position.getValue()];
	}