fixed hashCode implementations