memoized addition