adding equals, hash, and string