Refactor to generalize Add/Multiply