add abstract adder factory helper