begin work on the memoized version