added GetHashCode methods