consistent with the iterators