add equalsGeneric