fix hashcode equals tostring