REVIEW 4 major objections 6 minor 48 references
CEDAR: Agent-Orchestrated Tree Search for Goal-Directed Optimization of Complex Systems
T0 review · 4 major / 6 minor · reviewed 2026-08-10 · deepseek-v4-flash
Pith's one-line read CEDAR claims an LLM Judge–Editor loop inside Monte Carlo tree search can discover complex systems that satisfy natural-language behavioral goals, and can fit a target record better than a baseline that is given the full ground-truth…
desk verdict The record-fitting result is genuinely interesting and honestly presented, but the abstract-goal demonstration is confounded by a depth-dependent scoring cap, so the flagship claim is not yet established. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The load-bearing object is the search tree over system programs, formalized as an MCTS variant whose node-selection score is $S_v + \phi(c_v, c_p, \tau)$, where $\phi$ combines progressive widening ($\alpha\sqrt{\ln(c_p+1)/(c_v+1)}$ capped at expansion threshold $\tau$) with a depth bonus $\gamma\cdot\mathrm{DEPTH}(v)$. The LLM Editor acts as a stochastic transition kernel $P_\theta(P_u \mid P_v, A_v, s, G)$ over programs, and the LLM Judge acts as a learned value function producing $(A_u, S_u)$ with a bounded, noisy reward $S_u$; crashed or NaN-valued runs receive low scores so the tree backtracks. The representation layer—a restricted Python subset with four marked sections (initialization, intermediate computations, derivatives, Euler integration), domain wrappers such as graph(), delay(), smth1(), and inline edit markers—is what lets the LLMs make structural edits rather than only tuning coefficients.
What would settle it
Run CEDAR on the World Dynamics goal but replace the Judge's score with an external fixed multi-objective metric (for example, a weighted sum of final population, remaining resources, and pollution level), then check whether the system selected as best under the LLM Judge also optimizes that external metric; if the Judge's scores and the external metric diverge, the abstract-goal claim is not supported.
Extended reading notes
Core claim
The central claim is that CEDAR turns complex-system discovery into Monte Carlo tree search over executable programs: each node is a system written in a restricted, runnable Python subset with Euler-method integration; an LLM Editor proposes modified systems (adding variables, rewiring feedbacks, changing equations), the edited system is executed, and an LLM Judge returns a bounded numerical score plus a textual analysis. Because the Judge scores behavior against the user's natural-language goal, the search can optimize abstract objectives such as "balance population, resources, and environment" without a predefined scalar fitness function. The paper reports that on the World Dynamics system, the search improves all three targeted variables together, and that in the record-fitting experiment CEDAR without predefined formulations (L1 2.22, DTW 433.13 for GPT-5.1) outperforms Optuna with the full formula skeleton (L1 3.71, DTW 477.52).
Load-bearing premise
The load-bearing premise is that the LLM Judge's bounded score is a faithful, non-adversarial measure of how well a system satisfies the user's natural-language goal, especially in the abstract-goal experiment where no external metric is used.
Editorial extensions
If this is right
- A user can specify a goal in natural language and receive a working system-dynamics model, removing the need to write equations in DYNAMO- or STELLA-style languages.
- Starting from a bare skeleton, the method can reconstruct the behavior of a stochastic ground-truth system more accurately than an optimizer given the full ground-truth formulas, implying that structure discovery rather than parameter fitting drives the gain.
- Keeping a tree rather than a single trajectory preserves several distinct high-scoring systems, enabling sensitivity analysis across different trade-off emphases.
- Every edit and evaluation carries a textual rationale, so the search's path from initial system to final system is inspectable, even though the texts are not verified causal explanations.
- MCTS with the same LLM operators scores higher than a linear (single-chain) search, so the branching exploration contributes directly to performance.
Reading between the lines
- A testable extension is to keep the Judge and Editor but swap the executable representation for agent-based models or cellular automata; the same two-operator loop should transfer if the representation enforces the same structural edit markers.
- Because the Judge and Editor share a model class, the abstract-goal results may partly measure the LLM's internal notion of "sustainable balance" rather than an external ground truth; a held-out external multi-objective metric would separate these.
- The record-fitting result suggests that the hard part of scientific model discovery is proposing new functional structure, not tuning coefficients; an extension would compare CEDAR against symbolic regression or equation-discovery methods on the same records.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper introduces CEDAR, an MCTS framework in which an LLM Editor proposes variants of a complex system represented in a restricted Python subset and an LLM Judge assigns scores and textual analyses against a natural-language goal. The authors formalize node selection as a generalized UCT with progressive widening and a depth bonus, report a qualitative demonstration on the World Dynamics model, a quantitative record-fitting comparison against Optuna using external L1/DTW metrics, interpretability analyses, and an MCTS-versus-linear ablation. The paper concludes with explicit limitations, including reliance on LLM judgment for abstract goals and the absence of tight statistical claims.
Significance. Conditional on the record-fitting result, CEDAR's ability to discover dynamics without predefined formula structure is a meaningful contribution, and the use of external ground-truth metrics in a 3500-step setting is a real strength. The abstract-goal demonstration, however, is not yet load-bearing evidence because its fitness signal is confounded by depth-dependent scoring and by the shared LLM Judge, so the paper's flagship capability claim is not established. The manuscript is transparent about several of these weaknesses, which is commendable, but the empirical core needs revision before the claims can be accepted.
major comments (4)
- [Fitting an Abstract Goal; Appendix Method Details; Theoretical Connection] The vague-goal experiment is confounded by the depth-dependent score cap. The Judge prompt sets 'Maximum possible score is score <= 10.0 + 2.5 * depth', while node selection uses SCORE(v) = S_v + ... + gamma * DEPTH(v) with gamma = 2, so both the raw Judge score and the acquisition score grow with depth independent of goal quality. Along the reported best path, scores increase 6.75, 9.25, 11.75, 13.25, and Editor Response 6 explicitly cites the allowance ('10.0 + 2.5*4 = 20.0'). Algorithm 1 returns the node with maximum S_u, so the 'best' system may be deep rather than goal-satisfying. The Theoretical Connection's claim that S_u constitutes a bounded, non-adversarial reward is inconsistent with a depth-dependent cap. Please deconfound by removing the depth cap, normalizing scores, comparing nodes at equal depth, or providing external or human evaluation.
- [Fitting an Abstract Goal; Interpretability transcripts] The literal 50% coefficient constraint is violated in the reported run. The goal text states 'only change the coefficients in the helper. Do not change any coefficient by more than 50%', but the Editor responses along the reported path announce NRMM reductions of 75-95%, POLCM reductions of 90-98%, and CIM increases of up to 15x. The paper does not report constraint-adherence statistics or discuss these violations. Since the Judge is the sole evaluator and appears not to enforce the stated constraint, the demonstration does not show that CEDAR satisfies the user-specified goal as written.
- [Table 2 and Quantitative Studies: Fitting a Concrete Record] The headline record-fitting claim rests on single runs. Table 2 gives one L1/DTW value per CEDAR backend and one Optuna full-formulae run; the appendix adds a second Optuna run but no CEDAR seed variability or significance test. The paper's own conclusion says 'We report trends rather than tight statistical claims,' but the abstract and introduction present the Table 2 comparison as the main quantitative evidence. Please report multiple seeds for both CEDAR and Optuna, with distributions or confidence intervals, before claiming that CEDAR outperforms Optuna with full formulae.
- [Why Use MCTS with LLMs; Figure 8] The ablation supporting the claim that 'MCTS leads to better performance' appears to rely on a single run or very few runs, with no statistical quantification. The section asserts that MCTS is crucial for performance gains, but Figure 8 shows only node scores and trajectories without seed variability or a test. The comparison should also control for the number of LLM calls or total compute, since CEDAR and linear search may differ in budget. This component claim needs additional support.
minor comments (6)
- [Conclusion] The word 'diveristy' should be 'diversity'.
- [Theoretical Connection: Full Details, Eq. (1)] Equation (1) uses 'cu+1' in the denominator where the main text defines the expansion count of node v as cv, and the beta term is not defined in the main text.
- [Appendix: Dynamic Time Warping Distance] The text says the Sakoe-Chiba band with window size w=250 restricts the warping path to within 205 time steps; this number appears inconsistent with w=250 and should be corrected or clarified.
- [Related Work and Experimental Details] The Related Work section says the method 'scales to 60 variables and 4000 steps', while Experimental Details report 20 systems with 20 to 69 integrated variables; these numbers should be reconciled or stated as approximate.
- [Appendix Overview] The appendix overview contains unresolved placeholder section numbers such as 'Section .' and should be populated with the correct references.
- [Reproducibility] No code or data availability statement is provided; releasing the prompts, the harness, and the dataset conversions would materially aid reproducibility.
Circularity Check
Abstract-goal success is measured by the same LLM Judge that is optimized, an acknowledged circularity risk; the record-fitting result is externally grounded.
-
self definitional
[Conclusion; Appendix (Method Details: LLM Contextualization, LLMJUDGE prompt); Algorithm 1]
"The LLM Judge both scores candidates and shares a model class with the Editor, risking circularity, as the abstract-goal setting still relies on LLM judgment. ... IMPORTANT CONSTRAINT: Maximum possible score is score <= 10.0 + 2.5 * depth."
In the abstract-goal experiment, the measure of whether a candidate 'satisfies' the goal is the LLM Judge's score S_u, and Algorithm 1 explicitly optimizes S_u both in node selection and in the best-node update. Since the same model family generates variants (Editor) and scores them (Judge), the reported 'discovered improvements' can be driven by the Judge's own scoring preferences rather than by an external, independent measure of the natural-language goal. The paper's Conclusion concedes this risk.
full rationale
The paper's central quantitative claim—CEDAR beating Optuna with full formulae in record fitting—is self-contained and externally anchored: it is scored by L1 and DTW distances to a ground-truth record, with Optuna baselines and seed variability described, so it does not reduce to the LLM Judge's opinion. The abstract-goal World Dynamics demonstration is different: the fitness function is the LLM Judge, and the Judge shares a model class with the Editor. The Conclusion explicitly says this 'risks circularity, as the abstract-goal setting still relies on LLM judgment.' I therefore flag one partial circular step in the vague-goal capability. The depth-dependent scoring cap and gamma*DEPTH selection bonus aggravate the issue by making S_u non-comparable across depths; the Editor's own transcript cites the cap to justify a 14.75-15.25 score. No load-bearing self-citations or imported uniqueness theorems are present, and the quantitative record experiment is independent, so the paper is not globally circular. Score 4 reflects one acknowledged, partial circularity in the abstract-goal claim while the main benchmark remains externally grounded.
Assumptions & free parameters
free parameters (5)
- UCT exploration coefficient alpha =
1
- depth preference gamma =
2
- expansion threshold tau =
not reported
- score-depth cap slope =
2.5
- context budget L =
not reported
assumptions (4)
- domain assumption The Euler discretization with the chosen time step faithfully approximates the continuous dynamics of the studied complex systems.
- domain assumption LLM Judge scores faithfully encode how well a system satisfies the natural-language goal.
- domain assumption LLM outputs are syntactically and semantically valid after at most three retries.
- domain assumption The 20 systems converted from DYNAMO and STELLA literature into the Python representation are faithful to the original models.
Cite this review
Pith. "Pith review of CEDAR: Agent-Orchestrated Tree Search for Goal-Directed Optimization of Complex Systems." pith.science (2026). https://pith.science/paper/VHTRP4N6
@misc{pith2026260806871,
author = {Pith},
title = {Pith review of: CEDAR: Agent-Orchestrated Tree Search for Goal-Directed Optimization of Complex Systems},
year = {2026},
howpublished = {\url{https://pith.science/paper/VHTRP4N6}},
note = {Machine review of arXiv:2608.06871}
}
read the original abstract
Complex systems, core objects of study in artificial life, model diverse phenomena through nonlinear, feedback-driven interactions that produce emergent behavior, with applications from population dynamics and biology to economic policy and strategic decision-making. Yet the difficulty of predicting how feedback structure gives rise to emergent behavior, a central open problem in artificial life, makes goal-directed design exceptionally challenging. In established practice, system structures are written in specialized modeling languages such as DYNAMO or STELLA, compounding the challenge with labor-intensive workflows that limit adoption and hinder timely decision-making. To address these challenges, we introduce CEDAR, an autonomous method that uses Large Language Model (LLM) agents to discover complex systems satisfying user-specified behavioral goals. Our key innovation is an LLM-driven Monte Carlo Tree Search (MCTS) deeply coupled with complex systems: at each iteration, an LLM Judge evaluates emergent behavior against specified goals and an LLM Editor proposes improved variants, with the Judge acting as a fitness function and the Editor as a variation operator, akin to a generate-and-evaluate loop in evolutionary computation. We represent complex systems as a restricted, runnable subset of Python with domain-specific primitives, letting LLMs modify system dynamics directly. CEDAR formalizes this as an MCTS variant with an LLM-parameterized transition kernel and value function, enabling goal-directed discovery of complex system behaviors while preserving solution diversity, and its LLM-based interpretability reveals how structural changes drive emergent behavior. CEDAR reduces human effort while enabling capabilities difficult to achieve with existing approaches, facilitating broader adoption of complex systems across domains.
Figures
Figures from the paper (9 more)
Reference graph
Works this paper leans on
-
[1]
First, evaluate how well this code achieves the goal in absolute terms
-
[2]
Use the tree context only to calibrate what score ranges mean - don’t let it constrain your scoring
-
[3]
For very good performance that exceeds expectations, don’t hesitate to give high scores
-
[4]
When unsure between score ranges, favor the higher score if genuine progress is evident
-
[5]
Large score increases (5+ points) are appropriate for significant improvements
-
[6]
Always respect the depth constraint: score <= 10.0 + 2.5 * depth Remember: Judge this code’s actual achievement of the goal, not its relative position in the search tree. === Task ==== Please provide your response in this format: REASONING: [Start with a concise description of your main modification strategy in the first 200 characters, then explain detai...
work page 2006
-
[21]
MAXIMIZE POPULATION GROWTH: Population grows 124% over 200 years (1.65B to 3.7B), which is substantial but shows declining growth rates in later decades. The growth trajectory appears sustainable without catastrophic collapse, suggesting reasonable achievement of this goal
-
[22]
The depletion rate averages about 3.1B units per year, which is quite high
MINIMIZE RESOURCE DEPLETION RATE: Natural resources decline from 900B to 278B units, representing a 69% depletion over 200 years. The depletion rate averages about 3.1B units per year, which is quite high. The natural resource fraction remaining (NRFR) drops to 0.309 by 2100, indicating severe resource stress. This objective is poorly achieved
Show all 48 references
-
[23]
The pollution ratio (POLR) reaches 2.587 by 2100, indicating severe environmental degradation
MINIMIZE POLLUTION ACCUMULATION RATE: Pollution increases dramatically from 200M to 9.3B units, a 46-fold increase. The pollution ratio (POLR) reaches 2.587 by 2100, indicating severe environmental degradation. This represents a complete failure to minimize pollution accumulat...
-
[24]
RESOURCE EFFICIENCY: Reducing natural resource usage multiplier coefficients by 25-40% to slow depletion
-
[25]
POLLUTION CONTROL: Reducing pollution generation coefficients by 30-40% and improving absorption rates by 25%
-
[26]
The modifications are substantial enough to constitute a breakthrough approach but remain within the 50% change limit
CAPITAL OPTIMIZATION: Adjusting capital investment parameters to support both resource efficiency and pollution control Specific modifications: - Reduce base natural resource usage rate from 1.0 to 0.7 (30% improvement) - Reduce base pollution generation rate from 1.0 to 0.6 (...
-
[27]
**Population Growth **: Population grows from 1.65B to 5.46B by 2100, which is more sustainable than unconstrained growth while still allowing for reasonable expansion
-
[28]
This is a substantial improvement over the parent node which showed more severe resource depletion
**Resource Conservation **: Natural resources decline from 900B to 262.7B units, representing a 70% depletion rather than complete exhaustion. This is a substantial improvement over the parent node which showed more severe resource depletion
-
[29]
**Pollution Control **: Pollution levels peak around 2070 at 14.7B units then stabilize, showing the system can manage pollution accumulation rather than allowing runaway growth
-
[30]
**System Stability **: The key indicators show the system reaching a more stable state by 2100: - Birth rates and death rates converge to sustainable levels - Resource usage rates stabilize - Capital investment maintains positive growth - Quality of life metrics remain reasonable
-
[31]
EXPLORATORY APPROACH: Try completely different parameter combinations
**Trade-off Balance **: The code successfully balances the three competing objectives: - Allows population growth (1.65B -> 5.46B) - Prevents complete resource exhaustion (30% remaining) - Controls pollution accumulation (stabilizes rather than exponential growth) The modifica...
-
[32]
**Enhanced Capital Productivity **: Dramatically increase capital investment multiplier (CIM) to boost economic efficiency and reduce resource intensity per unit of economic output
-
[33]
**Aggressive Pollution Reduction **: Significantly reduce pollution generation ( POLCM) while maintaining pollution absorption capacity to achieve net pollution reduction
-
[34]
**Optimized Resource Conservation **: Further reduce natural resource usage multiplier (NRMM) to achieve even better resource conservation than current best nodes
-
[35]
**Improved Death Rate Management **: Slightly optimize death rate from material ( DRMM) to balance population growth with sustainability
-
[36]
**Enhanced Pollution Absorption **: Increase pollution absorption time (POLAT) to accelerate pollution cleanup. This combination should achieve: - More sustainable population growth (target 4-5B by 2100) - Better resource conservation (target >40% remaining) - Dramatic polluti...
-
[37]
Further reducing resource usage rates (NRMM) to achieve even better conservation
-
[38]
Enhancing capital investment generation efficiency (CIG rate increase)
-
[39]
Improving pollution absorption capacity (POLAT) for better environmental control
-
[40]
AGGRESSIVE APPROACH: Make bold structural or algorithmic changes
Fine-tuning pollution generation (POLCM) to reduce environmental impact These modifications should push the sustainability metrics even higher while maintaining population growth, potentially achieving a score above 9.5 and approaching the exceptional performance range of 10+....
-
[41]
ULTRA-AGGRESSIVE RESOURCE CONSERVATION: Reduce NRMM values by 75% from current levels (0.5->0.125 at MSL=1, 1.75->0.4375 at MSL=10) to achieve near-zero resource depletion
-
[42]
REVOLUTIONARY POLLUTION CONTROL: Reduce POLCM by 90% (0.02->0.002 at CIR=0, 3.2->0.32 at CIR=5) for minimal pollution generation
-
[43]
MASSIVE CAPITAL PRODUCTIVITY: Increase CIM by 300% (1.5->6.0 at MSL=1, 4.5->18.0 at MSL=5) for unprecedented economic efficiency
-
[44]
EXPLORATORY APPROACH: Try completely different parameter combinations
ENHANCED POLLUTION ABSORPTION: Increase POLAT by 50% to accelerate pollution cleanup This combination should achieve: - Population growth to sustainable levels (4-6B range) - Near-zero resource depletion (95%+ resources remaining) - Minimal pollution accumulation (under 10M un...
-
[45]
EXTREME RESOURCE CONSERVATION: Reduce NRMM by 95% - even more aggressive than the 90\% reduction in top nodes
-
[46]
REVOLUTIONARY POLLUTION CONTROL: Reduce POLCM by 98% - beyond the 95\% reductions seen in best nodes
-
[47]
MASSIVE CAPITAL PRODUCTIVITY: Increase CIM by 15x - far exceeding the 10x increases in reference nodes
-
[48]
holy grail
ENHANCED POLLUTION ABSORPTION: Increase POLAT by 100% to handle any remaining pollution more effectively This combination should achieve: - Population growth with minimal resource depletion (targeting <5% resource loss vs current 75%) - Ultra-low pollution accumulation (target...
-
[53]
# natural-resource-extraction multiplier 54ECIR = CIR * (1 - CIAF_current) * NREM / (1 - 0.3) # effective-capital-investment ratio 55MSL = ECIR / 1 # material standard of living (dimensionless) 56 57# Birth rate multipliers 58BRMM = graph( 59MSL, ((0, 1.2), (1, 1), (2, 0.85), ...
-
[60]
# birth-rate-from-material multiplier 61BRCM = graph( 62CR, ((0, 1.05), (1, 1), (2, 0.9), (3, 0.7), (4, 0.6), (5, 0.55))
-
[63]
# birth-rate-from-crowding multiplier 64BRPM = graph( 65POLR, ((0, 1.02), (10, 0.9), (20, 0.7), (30, 0.4), (40, 0.25), (50, 0.15), (60, 0.1))
-
[66]
# birth-rate-from-pollution multiplier 67 68# Food ratio components 69CIRA = CIR * CIAF_current / 0.3 # capital-investment ratio in agriculture 70FPCI = graph( 71CIRA, ((0, 0.5), (1, 1), (2, 1.4), (3, 1.7), (4, 1.9), (5, 2.05), (6, 2.2))
-
[72]
# food potential from capital investment 73FCM = graph(CR, ((0, 2.4), (1, 1), (2, 0.6), (3, 0.4), (4, 0.3), (5, 0.2))) # food-from-crowding multiplier 74FPM = graph( 75POLR, ((0, 1.02), (10, 0.9), (20, 0.65), (30, 0.35), (40, 0.2), (50, 0.1), (60, 0.05))
-
[76]
# food-from-pollution multiplier 77FR = FPCI * FCM * FPM * (1 if t >= 1970 else 1) / 1 # food ratio 78BRFM = graph(FR, ((0, 0), (1, 1), (2, 1.6), (3, 1.9), (4, 2))) # birth-rate-from-food multiplier 79 80# Death rate multipliers 81DRMM = graph( 82MSL, 83( 84(0, 3), 85(0.5, 1.8...
1970
-
[96]
# death-rate-from-material multiplier 97DRCM = graph(CR, ((0, 0.9), (1, 1), (2, 1.2), (3, 1.5), (4, 1.9), (5, 3))) # death-rate-from-crowding multiplier 98DRPM = graph( 99POLR, ((0, 0.92), (10, 1.3), (20, 2), (30, 3.2), (40, 4.8), (50, 6.8), (60, 9.2))
-
[100]
# death-rate-from-pollution multiplier 101DRFM = graph( 102FR, ((0, 30), (0.25, 3), (0.5, 2), (0.75, 1.4), (1, 1), (1.25, 0.7), (1.5, 0.6), (1.75, 0.5), (2, 0.5))
-
[103]
# death-rate-from-food multiplier 104 105# Natural resource usage multiplier 106NRMM = graph( 107MSL, ((0, 0), (1, 1), (2, 1.8), (3, 2.4), (4, 2.9), (5, 3.3), (6, 3.6), (7, 3.8), (8, 3.9), (9, 3.95), (10, 4))
-
[108]
# natural-resource-from-material multiplier 109 110# Capital investment multiplier 111CIM = graph(MSL, ((0, 0.1), (1, 1.0), (2, 1.8), (3, 2.4), (4, 2.8), (5, 3))) # capital-investment multiplier 112 113# Pollution components 114POLCM = graph(CIR, ((0, 0.05), (1, 1), (2, 3), (3...
-
[117]
# pollution-absorption time 118 119# Quality of life components 120QLM = graph(MSL, ((0, 0.2), (1, 1), (2, 1.7), (3, 2.3), (4, 2.7), (5, 2.9))) # quality of life from material 121QLC = graph( 122CR, 123( 124(0, 2), 125(0.5, 1.3), 126(1, 1), 127(1.5, 0.75), 128(2, 0.55), 129(2....
-
[136]
# quality of life from crowding 137QLF = graph(FR, ((0, 0), (1, 1), (2, 1.8), (3, 2.4), (4, 2.7))) # quality of life from food 138QLP = graph( 139POLR, ((0, 1.04), (10, 0.85), (20, 0.6), (30, 0.3), (40, 0.15), (50, 0.05), (60, 0.02))
-
[140]
BEGIN ... / END
# quality of life from pollution 141QL = 1 * QLM * QLC * QLF * QLP # quality of life 142 143# Capital investment fraction adjustment components 144CFIFR = graph(FR, ((0, 1), (0.5, 0.6), (1, 0.3), (1.5, 0.15), (2, 0.1))) # capital fraction indicated by food ratio 145CIQR = grap...
1970
-
[1616]
Chi, Y ., Yang, K., and Klein, D
PMLR. Chi, Y ., Yang, K., and Klein, D. (2025). ThoughtSculpt: Reasoning with Intermediate Revision and Search. In Chiruzzo, L., Ritter, A., and Wang, L., editors,Findings of the Association for Computational Linguistics: NAACL 2025, pages 7700–7726, Albuquerque, New Mexico. A...
2025 arXiv
Reviewed August 10, 2026 · model on record in the stance chip above.
Discussion (0). Continue with ORCID to comment.