Numerous changes based on ListIterator

Changed length method to use an array list representation of the
iterator to get the "length" of that iterator