Factor out iterator handling
Use new iterator pattern in listNew2