for cahnged to iterators