factorizing algebraic expressions