* enable memoization. 10x performance improvement