public virtual void Expand(int startOffset, int endOffset) {
if (_start + startOffset > _end + endOffset)
throw new ArgumentException("Combination of start and end offsets should not be making range invalid");
_start += startOffset;
_end += endOffset;
}