Simplified 'mul' code, that has a pitfall: more object copies... but it's cleaner