memoize the read call