add with rescue and memoization