protected override string DoGetPosition(InsertionDeletionItem minInsDel)
 {
   return minInsDel.Start.ToString();
 }
 protected override long DoGetDistance(InsertionDeletionItem insDel, long position)
 {
   return Math.Abs(insDel.Start - position);
 }
 protected abstract long DoGetDistance(InsertionDeletionItem insDel, long position);
 protected abstract string DoGetPosition(InsertionDeletionItem minInsDel);
 protected override string DoGetPosition(InsertionDeletionItem minInsDel)
 {
   return string.Format("{0}-{1}", minInsDel.Start, minInsDel.End);
 }