add memoization module