public DoubleLinkedListIterator( int position ) {

            // if the position passed in is less than 0 or greater than the linked list's
            // size, throw an index out of bounds exception
            if( position < 0 || position > size ){
                throw new IndexOutOfBoundsException( "Invalid Index: " + index );
            }

            // no item returned yet... when the iterator starts traversing through the
            // list, this will, as the variable name implies, be set to the value of the
            // last time returned
            this.lastItemReturned = null; 

            // special case for when the position passed in is equal to the current size
            // of the double linked list
            if( position == size ) {
                this.index    = size;
                this.nextItem = null;
            }
            // start at the beginning of the list and traverse through the list until
            // the index reaches the desired position
            else {
                this.nextItem = head;

                // traverse through the list until immediately before the desired position
                for( index = 0; index < position; index++ ) {
                    this.nextItem = nextItem.next;
                    this.lastItemReturned = this.nextItem;
                }
            }
        } // end constructor DoubleLinkedListIterator( int position )