class LinkedListIndexedCollection extends Collection {

	public void insert(Object value, int position) {
		requireValidPosition(position);

		if (position == size) {
			add(value);

			return;
		} else if (position == 0) {
			first.prev = new ListNode(null, first, value);
			first = first.prev;
		} else {
			ListNode current = findNodeByIndex(position);

			current.prev.next = new ListNode(current.prev, current, value);
			current.prev = current.prev.next;
		}

		++size;
	}

	public  LinkedListIndexedCollection();
	public  LinkedListIndexedCollection(Collection other);

}