ok...I'm not sure about the changes to the logic. If you look at
Mul.flatten, you'll see lots of little inline comments telling what is
going on. That mightbe nice here to understand what the code is doing.