operator overloading with return value