depending on itr instead of iterator package