record iterator