added hashCode