added hashcode to for set