Add a test for (x+2)(y+3)
Fix a bug in expanding two Muls
Refactor the Mul expansion code
Merge the two loops