added iterators and basic generators