yep, this memoization stuff does not make sense because they key i'm using in the memoization table is only ever used once. back to the drawing board