equals, hashcode edited
equals, hashcode added