Add version using an Iterator