added fuzzy equality function