build iterator