restored the functionnal version of mul