Breaking up memoization a bit more
Updated TODO