card equals + hashCode