@Override
    public F remove(final int index) {
      if (index < 0) {
        throw new IndexOutOfBoundsException("Index: " + index + " Size: " + size());
      }
      final int adj = resync(index);
      if (adj == size) {
        throw new IndexOutOfBoundsException("Index: " + index + " Size: " + size());
      }
      final Content oldc = ContentList.this.remove(adj);
      // optimise the backing cache.
      backingsize = index;
      xdata = getDataModCount();
      // use Filter to ensure the cast is right.
      return filter.filter(oldc);
    }
@Override
    public F remove(final int index)