simplify && correct add/subtract logic