@Override
    public boolean remove(int row, int column) {
        if (exists(row, column)) {
            Set<Cell<V>> tail = cells.tailSet(finder(row, column));
            if (tail.size() > 0) {
                Iterator<Cell<V>> it = tail.iterator();
                Cell<V> cell = it.next();
                if (cell.getRow() == row && cell.getColumn() == column) {
                    it.remove();
                    return true;
                }
            }
        }
        return false;
    }