convert into 3 steps, simplify wherever we can