first try to combine using the distributive property
begin cleanup
fix
big cleanup
cleanup
cleanup
fix with ones
leave only zero if one factor is zero