added iterators
added factory methods for iterators