operator overload updated