more accurate text overlapping