implemented most of ListIterator