more operator overloading support, and inplace overloading operators: +=, -=, *=