Add memoization.