better to update `has_digit_x` and `has_digit_y` too, otherwise these 2 variants looks so strange.