improved memory usage. singleton pattern for record returned by iterator