algebraic manipulation