public boolean removeAt(int index) throws InvalidAccessException {

		DLNode current = new DLNode();
		DLNode next = current.getNext();
		DLNode prev = current.getPrev();

		if (this.head == null) {
			throw new InvalidAccessException("Empty List!");
		}

		if (index - 1 < 0) {
			throw new InvalidAccessException("Index < 0");
		}
		if (this.countElements() < index) {
			throw new InvalidAccessException("Index > List!");
		}
		try {
			if (this.elementAt(index - 1) == Integer.MIN_VALUE) {
				return false;
			}
		} catch (ValueException e) {
			return false;
		}
		if (head == tail) {
			head = null;
			tail = null;
			return true;
		}

		else if (index - 1 == 0) {
			current = head;
			next = current.getNext();
			prev = current.getPrev();
			head = next;

			current.setNext(null);
			next.setPrev(null);
			return true;

		} else if (index - 1 == this.countElements() - 1) {
			current = tail;
			next = current.getNext();

			prev = current.getPrev();

			prev.setNext(null);
			current.setPrev(null);
			tail = prev;
			return true;

		} else {

			current = runToIndex(index - 1);
			next = current.getNext();
			prev = current.getPrev();

			prev.setNext(next);
			next.setPrev(prev);
			return true;
		}

	}