actually, use diff[0] instead of , avoids useless weakening