add PeekingIteratorWrapper