Fix iterator behavior
Chain: Change protected member variables to private
FlattenIterator: Fix behavior on shallow mode
Rename classes