fix: use evalWithMemoization instead of addMemoization to have more control over the interface