switch to an iterator base interface to be copied in all iterator variants