new iterator interface support