fix hash/equals