memoize only once.