public boolean matches() {
		// How does this work?
		// First, always check if the top matches, that is end of sequence and
		// latest character
		// then go back into history

		// probably bad performance.
		// TODO: I have a better idea with 2 arrays, 1 for the sequence and 1
		// whether the specific character matches. Then, keep track on the fly
		// within update()

		int i = _sequence.length - 1;
		int j = 0;
		try {
			while (i >= 0) {
				char c = _history.getLast(j);

				// if it doesn't match, cancel
				if (c != _sequence[i]) {
					return false;
				}

				i--;
				j++;
			}
			return true;
		} catch (NoSuchElementException e) {
			return false;
		}

	}