fix: hashcode