use memoization to go from ~13 min spec harness to ~3 min spec