added swap funtion and overloaded +