implement MUL (tested)