added operator overloading