played around with operator overloading