ADD: Moved from a strict dependency on vectors in the constructor to iterators