operator overloads added