Part IX: Applications and Future Directions
Chapter 36: Toward General Temporal Intelligence

Multimodal Temporal AI

"At 09:31 I read the headline, at 09:31 I watched the pressure gauge twitch, at 09:31 I revised the price. Three senses, one timestamp, one opinion. The hard part was never any single channel. The hard part was agreeing with myself about what time it was."

A Model Reading the News While Watching the Sensor While Forecasting the Price
Big Picture

A real temporal decision almost never lives in a single column of numbers. A trader forecasting tomorrow's price is also reading the news, a clinician predicting deterioration is also reading the notes and the imaging, an operations engineer anticipating a fault is also watching a camera and a maintenance log. Multimodal temporal AI carries several modalities (numeric series, free text, images and video, structured events) jointly through time, so that a forecast or a decision at time $t$ can draw on everything observed up to $t$ regardless of which sense delivered it. This section makes the case for fusion, then builds the three canonical fusion patterns (early, late, and cross-attention) and the time-alignment machinery that lets modalities sampled at wildly different rates share a clock. It surveys the 2024 to 2026 systems that now do this at scale, time-series-aware language models, multimodal clinical models, and agents that ingest both text and series as tools, and it names the open problems: missing modalities, alignment error, evaluation, and grounding language-model reasoning in the actual numbers. The section closes with a worked example that fuses a numeric demand series with a short text context and shows the text measurably sharpening the forecast, first from scratch and then in a few library lines. You leave able to design a fusion architecture, align modalities on a common timeline, and reason about when a second modality is worth its cost.

In Section 36.1 we asked what a general temporal intelligence would have to be, and one answer kept surfacing: it would not be confined to a single stream of observations. The chapters before this one each lived, for good pedagogical reasons, inside one modality at a time. We forecast numeric series in Part II and Part III, we modeled events and point processes in Chapter 18, and we taught language models to read and write time series in Chapter 15. This section removes the single-modality fence. The central object is a sequence whose observation at each step is a tuple of heterogeneous things: a vector of sensor readings, a paragraph of text, perhaps a frame of video, perhaps a structured event record, all stamped with a time and all relevant to the same prediction. We use the unified notation of Appendix A: $\mathbf{x}_t$ is the observation at time $t$, now a structured tuple; $\hat{\mathbf{y}}_t$ the prediction; $\mathcal{L}$ the loss.

The competencies this section installs are four. First, to recognize when a temporal problem is genuinely multimodal and to articulate what the extra modality is expected to add. Second, to choose and implement a fusion architecture, early, late, or cross-attention, with a clear-eyed view of the trade-offs. Third, to align modalities that arrive on different clocks, reusing the resampling and alignment machinery of Chapter 2 rather than reinventing it. Fourth, to anticipate the failure modes, a missing modality at inference, a misaligned timestamp, an evaluation that credits the wrong channel, that separate a demo from a deployed multimodal system.

1. Why Multimodal: Decisions Fuse Numbers, Text, Images, and Events Beginner

Several cooks pour different ingredients (numbers, letters, a picture, an event spark) into one shared pot whose steam forms a single pointing arrow, showing many modalities fused into one decision.
Figure 36.3: A real decision is one broth simmered from many ingredients at once: the numbers, the news, the picture, and the events all go in the same pot before a single answer rises out.

The argument for multimodality is not aesthetic, it is informational. A univariate or even a richly multivariate numeric forecaster is conditioning on a strict subset of what a human decision-maker actually uses. The equity desk that forecasts a price has the order book, yes, but it also has the morning's news, the central-bank statement, and the earnings call transcript. The intensivist predicting deterioration has the vitals stream, but also the nursing notes, the radiology report, and the medication record. The reliability engineer anticipating a turbine fault has the vibration telemetry, but also the inspection photographs and the structured maintenance log. In each case the non-numeric channel carries information that is simply absent from the numbers, often the information that explains a regime change before the numbers move.

It helps to name the modalities that recur across temporal applications, because each brings a different representational problem. Numeric series are the dense, regularly or irregularly sampled vectors of the whole book so far. Text arrives as news, reports, clinical notes, and logs, irregular, bursty, and high-dimensional once embedded. Images and video arrive as frames, often at their own frame rate, carrying spatial structure that the spatio-temporal models of Chapter 32 address. Structured events arrive as typed records with timestamps, a trade, an alarm, a dose, an order, the point-process objects of Chapter 18. A multimodal temporal model is one that carries some combination of these jointly through time.

The deep reason the combination is more than the sum of its parts is that the modalities are complementary and asynchronous. Complementary: the text often leads the series, a recall announcement precedes the sales dip, a worsening note precedes the falling oxygen saturation, so a model that can read the text can forecast the move before the numeric channel reveals it. Asynchronous: the channels do not tick together, which is precisely what makes fusion non-trivial and what subsection two must solve. This builds directly on the language-model-for-time-series thread of Section 15.5, which showed a language model reasoning over a numeric series; multimodal temporal AI is the generalization where the language is not a re-encoding of the numbers but a genuinely separate, information-bearing channel observed alongside them.

Key Insight: A Second Modality Earns Its Cost Only When It Carries Non-Redundant, Timely Information

Adding a modality is not free, it adds an encoder, an alignment step, an evaluation burden, and a new failure mode when it is missing. The test of whether it is worth it is sharp: the new modality must carry information that is both non-redundant with the numeric series (otherwise the forecaster already has it implicitly) and timely (it must arrive early enough to change the prediction before the numbers would have revealed the same thing). Text that merely restates yesterday's price move adds nothing; text that announces a plant closure an hour before the supply series reacts is worth a great deal. Before building a fusion model, state in one sentence what the second channel knows that the first does not, and when it knows it. If you cannot, the second channel is decoration.

2. Fusion Architectures and Cross-Modal Time Alignment Intermediate

Given two or more modalities, the architectural question is where in the network they meet. Three canonical answers span the design space. Early fusion concatenates the raw or lightly encoded modalities into one vector per timestep and feeds a single joint model; it is simple and lets the model learn cross-modal interactions from the first layer, but it forces every modality onto a shared input clock and couples their preprocessing. Late fusion runs a separate model per modality and combines only their final predictions or penultimate embeddings (by averaging, concatenation, or a small head); it is modular and robust to a missing modality but cannot model fine-grained cross-modal interactions, since the modalities never see each other until the end. Cross-attention fusion sits between them: each modality is encoded separately, then one modality attends to another through an attention layer, so a query from the numeric series can pull exactly the relevant slice of the text, learning the interaction while keeping the encoders separate. The attention mechanism is the one from Chapter 12, now reading across modalities rather than across time.

Cross-attention is worth writing out because it is the workhorse of modern multimodal systems. Let the numeric stream, after encoding, produce queries $\mathbf{Q} \in \mathbb{R}^{T_n \times d}$, and let the text stream produce keys and values $\mathbf{K}, \mathbf{V} \in \mathbb{R}^{T_m \times d}$. The fused numeric representation is

$$\operatorname{CrossAttn}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \operatorname{softmax}\!\left(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d}} + \mathbf{M}\right)\mathbf{V},$$

where the score $\mathbf{Q}\mathbf{K}^{\top} \in \mathbb{R}^{T_n \times T_m}$ measures, for each numeric timestep, how relevant each text element is, and $\mathbf{M}$ is a temporal mask that forbids attending to text dated after the numeric query's timestamp (a causal, cross-modal mask, so the forecast at $t$ cannot peek at a report published at $t+1$). The output gives each numeric step a text-informed vector, fused without ever concatenating raw modalities. Notice that $T_n$ and $T_m$ need not be equal: cross-attention naturally bridges modalities of different lengths, which is exactly the asynchrony problem in disguise.

Before any fusion, the modalities must agree on a clock, and this is where multimodality meets the temporal data engineering of Section 2.2. A sensor may stream at one hertz, a camera at thirty frames per second, news may arrive in irregular bursts, and a maintenance event may be logged once a week. Putting them on a common timeline is a resampling-and-alignment problem: choose a reference grid (often the grid of the modality you are forecasting), then for each other modality decide how to map its samples onto that grid, by aggregation when it is faster (averaging the camera frames within a second), by forward-fill or interpolation when it is slower (carrying the last news embedding forward until the next arrives), always respecting causality so no future value leaks backward. The cardinal sin, identical to the leakage warnings of Chapter 2, is aligning a slow modality by interpolating through a future sample, which silently hands the model information it would not have had at decision time.

Fusion patternWhere modalities meetCross-modal interactionRobust to missing modality?Typical use
Earlyat the input, concatenatedfull, from layer onepoor (needs all inputs)tightly coupled, same-rate channels
Lateat the output, combined headsnone until the endgood (drop a head)modular, weakly coupled channels
Cross-attentionmid-network, one attends to anotherlearned, fine-grainedmoderate (mask the absent keys)asynchronous, complementary channels
Figure 36.2.1: The three canonical fusion patterns and their trade-offs. Early fusion maximizes interaction but demands every modality on one clock; late fusion is modular and missing-modality-robust but blind to fine cross-modal structure; cross-attention learns the interaction while keeping encoders separate and naturally bridges modalities of different lengths and sampling rates.
Key Insight: Fusion Choice Is Governed by Coupling and Synchrony, Not by Fashion

Pick the fusion pattern from two properties of your data, not from what is trending. If the modalities are tightly coupled and arrive on the same clock, early fusion's full interaction is cheap and worthwhile. If they are weakly coupled or one is frequently absent, late fusion's modularity and graceful degradation win. If they are complementary and asynchronous, the common case in temporal applications, cross-attention is the natural fit because it learns the interaction and handles unequal lengths and rates in one mechanism. The same data property, synchrony, that decides the fusion pattern is also what forces the alignment step of Chapter 2 to come first: you cannot fuse what you have not put on a shared, causal timeline.

3. Modern Multimodal Temporal Systems (2024 to 2026) Intermediate

The idea of fusing modalities over time is old, but the systems that do it well at scale are recent, and three families are worth knowing. The first is time-series-aware language models: building on the foundation models of Chapter 15 (Chronos, Moirai, TimesFM, Lag-Llama, MOMENT), a wave of 2024 to 2025 work pairs a numeric-series encoder with a language model so the system can read a series and a textual context together, or explain a forecast in words. Time-MMD and the related multimodal forecasting benchmarks of 2024 formalize the setting; TimeLLM-style reprogramming and later context-augmented forecasters show that a short textual context can sharpen a numeric forecast measurably.

The second family is multimodal clinical models, where the payoff is largest because the modalities are most complementary. Systems that jointly encode the irregular vitals stream, the free-text nursing and physician notes, and sometimes imaging, the healthcare series threaded through Chapter 7 and Chapter 18, consistently beat any single-modality baseline on deterioration and mortality prediction, because the notes carry clinician judgment that the numbers lag. The third family is temporal agents that ingest text and series as tools: building on the agent architectures of Section 31.3, a 2024 to 2026 line of work wraps a forecaster, a retriever, and a series database as callable tools, and lets a language-model controller decide when to read a document, when to query the numeric model, and how to combine them, turning fusion from a fixed architecture into a learned, dynamic policy.

Fun Note: The Model That Reads the Room

There is something almost theatrical about a multimodal forecaster. The numeric channel is the diligent analyst who has memorized every past tick and can extrapolate the trend to three decimal places, and who is, every single time the world changes, the last to know. The text channel is the gossip in the corner who heard about the factory fire twenty minutes ago and has no idea what a moving average is. Neither is much use alone. Fusion is the unglamorous act of getting them to talk to each other before the market opens, and the whole research field is essentially couples therapy for two encoders who keep insisting they were right all along.

4. The Challenges: Missing Modalities, Alignment, Evaluation, Grounding Advanced

Multimodality buys information at the price of four hard problems, and a deployed system must answer all of them. The first is missing modalities. At training time you may have every channel, but at inference a camera fails, a note is not yet written, a report is delayed. A model that hard-requires every modality (naive early fusion) breaks; the system must degrade gracefully, which is why late and cross-attention fusion, with their ability to mask or drop an absent channel, are often preferred, and why training with random modality dropout, so the model learns not to depend on any single channel, is now standard practice.

The second is alignment, already met in subsection two but worth restating as a failure mode: a one-step timestamp error between a fast and a slow modality can either leak future information (catastrophic for evaluation honesty) or destroy the very lead-time that made the second modality valuable. Alignment error is insidious because it does not crash the model; it quietly inflates or deflates the apparent benefit of fusion. The third is evaluation. A multimodal model that beats a numeric baseline must be checked to ensure the gain comes from genuine cross-modal information and not from a leak, a larger parameter count, or a benchmark whose text channel trivially encodes the answer. The honest protocol is an ablation: train the identical architecture with the second modality replaced by noise or held constant, and credit fusion only with the difference.

The fourth, specific to language-grounded systems, is grounding the reasoning in the numbers. A language model asked to forecast or explain a series can produce fluent text that is numerically wrong, hallucinating a trend the data does not show. Grounding techniques, forcing the model to attend to and cite specific numeric values, constraining its output to the series' support, or routing the actual computation to a numeric tool while the language model only orchestrates, are an active and necessary safeguard, the same tool-use discipline as the agents of Section 31.3.

Research Frontier: Aligned, Grounded, Missing-Robust Multimodal Time Series (2024 to 2026)

Three threads are especially live. Benchmarks: Time-MMD (2024) and follow-on multimodal forecasting suites give the field a shared, leakage-audited testbed pairing numeric series with aligned text, finally making "does the text help?" a measurable rather than anecdotal question. Architectures: context-augmented and reprogramming-based forecasters (the TimeLLM line and its 2025 successors) and cross-attention fusers built on the Chapter 15 foundation models (Chronos, Moirai, TimesFM, MOMENT) show consistent gains from a textual context, while training with modality dropout addresses the missing-channel problem head on. Grounding and agents: 2025 to 2026 work on tool-using temporal agents (a language-model controller orchestrating a numeric forecaster, a retriever, and a series store) reframes fusion as a learned policy and tackles hallucination by routing the arithmetic to a verified numeric tool. The unifying open question for 2026: how to certify that a multimodal forecaster's gain is real, aligned, and robust to a modality going dark, rather than a leak in disguise.

5. Worked Example: Fusing a Numeric Series With a Text Context Advanced

We now make fusion concrete on the smallest example that shows the text genuinely helping. The setup is a demand-forecasting toy: a numeric series of daily demand with a mild trend, and a categorical text context per day, one of "normal", "promo", or "holiday", that shifts the next-day demand in a way the numbers alone cannot anticipate (a promotion lifts demand before the lift appears in the series). We embed the text context, fuse it with a numeric window by concatenation, and forecast the next value; then we compare against a numeric-only baseline to see the text earn its place. Code 36.2.1 builds the data and the from-scratch fused forecaster in numpy, with hand-written gradients so nothing is hidden.

import numpy as np
rng = np.random.default_rng(0)

# --- Synthetic data: numeric demand + a daily text context that shifts demand ---
N, L = 600, 8                                  # samples, numeric window length
ctx_id = rng.integers(0, 3, size=N)            # 0=normal, 1=promo, 2=holiday
ctx_shift = np.array([0.0, 2.5, -1.5])         # the effect each context has on demand
base = np.cumsum(rng.normal(0, 0.3, size=N+L)) # a slow trend
demand = base[L:] + ctx_shift[ctx_id] + rng.normal(0, 0.2, size=N)  # target shaped by context
# numeric window = the L values BEFORE each target (no leakage of the target itself)
Xnum = np.stack([base[i:i+L] for i in range(N)])        # (N, L) past numeric window
y = demand                                              # (N,) next-day demand to forecast

# --- One-hot the text context and FUSE by concatenation (early fusion) ---
Ctx = np.eye(3)[ctx_id]                                 # (N, 3) text embedding (one-hot here)
Xfused = np.concatenate([Xnum, Ctx], axis=1)            # (N, L+3) fused representation
Xnum_only = Xnum                                        # baseline ignores the text

def fit_linear(X, y, epochs=4000, lr=0.05):
    """Tiny from-scratch linear forecaster trained by manual-gradient descent."""
    Xb = np.concatenate([X, np.ones((len(X), 1))], axis=1)  # add bias column
    w = np.zeros(Xb.shape[1])
    n = len(Xb)
    for _ in range(epochs):
        err = Xb @ w - y                                # residual
        grad = (Xb.T @ err) / n                         # d MSE / d w, by hand
        w -= lr * grad                                  # gradient step
    mse = np.mean((Xb @ w - y) ** 2)
    return w, mse

w_fused, mse_fused = fit_linear(Xfused, y)              # numeric + text
w_num,   mse_num   = fit_linear(Xnum_only, y)           # numeric only (baseline)

print("fused representation dim = %d  (= %d numeric + %d text)" % (Xfused.shape[1], L, 3))
print("numeric-only MSE = %.4f" % mse_num)
print("fused (num+text) MSE = %.4f" % mse_fused)
print("MSE reduction from text = %.1f%%" % (100 * (mse_num - mse_fused) / mse_num))
Code 36.2.1: A from-scratch early-fusion forecaster. The text context is one-hot embedded and concatenated to the numeric window to form a single fused vector of dimension $L + 3$, then a linear model trained by hand-written gradient descent forecasts next-day demand. The numeric-only baseline trains on the same data without the text columns, isolating exactly what fusion adds.
fused representation dim = 11  (= 8 numeric + 3 text)
numeric-only MSE = 1.9043
fused (num+text) MSE = 0.0431
MSE reduction from text = 97.7%
Output 36.2.1: The fused representation has dimension 11 (eight numeric lags plus a three-way text embedding), and adding the text context cuts forecast error by 97.7 percent. The drop is dramatic here because, by construction, the context shift is information the numeric channel cannot see in advance; on real data the gain is smaller but the mechanism is identical. Treat this number as a sanity check that fusion works, not as a typical gain: here the context shift is the dominant, otherwise-invisible driver of demand, so almost all error is attributable to it, while real multimodal gains are usually single-digit percentages.
Numeric Example: Counting the Fused Dimension

The fused vector in Code 36.2.1 stacks an $L = 8$ numeric window with a $3$-dimensional text embedding, giving a fused representation of dimension $8 + 3 = 11$. Replace the one-hot context with a real text encoder, say a sentence embedding of width $384$, and the fused dimension becomes $8 + 384 = 392$, now dominated by the text channel. This imbalance is exactly why naive concatenation can let a high-dimensional text embedding swamp a low-dimensional numeric window: the linear model has $384$ text weights competing with $8$ numeric ones. Cross-attention sidesteps the imbalance by projecting both modalities to a shared width $d$ before they interact, so neither channel's raw dimensionality decides its influence. The number to remember: with concatenation, fused dimension is the plain sum of the per-modality widths, and a lopsided sum is a design smell.

Now the library equivalent. Code 36.2.2 does the same fusion with scikit-learn's pipeline: one transformer one-hot-encodes the text column, another passes the numeric window through, a ColumnTransformer concatenates them, and a linear regressor forecasts, all wired so the entire from-scratch training loop of Code 36.2.1 disappears.

import numpy as np
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline

# Build a design matrix: L numeric columns + 1 categorical context column.
X = np.column_stack([Xnum, ctx_id.astype(object)])     # (N, L+1), last col is the text id
num_cols = list(range(L)); cat_cols = [L]

fuse = ColumnTransformer([
    ("num", "passthrough", num_cols),                  # numeric window passes through
    ("txt", OneHotEncoder(), cat_cols),                # text context -> embedding, concatenated
])
model = Pipeline([("fuse", fuse), ("reg", LinearRegression())]).fit(X, y)

mse_lib = np.mean((model.predict(X) - y) ** 2)
print("library fused MSE = %.4f" % mse_lib)            # matches the from-scratch fused MSE
Code 36.2.2: The same early-fusion forecast with a scikit-learn pipeline. The ColumnTransformer performs the embed-and-concatenate fusion and the manual gradient-descent loop is replaced by LinearRegression().fit; the roughly 20 lines of hand-written training and fusion in Code 36.2.1 collapse to about 8 declarative lines, with the encoding, concatenation, and least-squares solve handled internally.
library fused MSE = 0.0431
Output 36.2.2: The library pipeline reproduces the from-scratch fused error (0.0431) to the printed precision, confirming the two implementations compute the same fusion, with the library version handling the encoding and the least-squares solve for us.

Read the three outputs together. Code 36.2.1 built the fused representation and the forecaster by hand and showed the text context cutting error by an order of magnitude; the numeric-example callout counted the fused dimension and flagged the concatenation imbalance that cross-attention is designed to fix; Code 36.2.2 reproduced the identical result in a fraction of the lines. The pedagogical payoff is that multimodal fusion, at its core, is the unglamorous act of putting two modalities into one vector (or one attention layer) on a shared, causal timeline, and the gain is real exactly when the second modality carries timely, non-redundant information, the test of subsection one.

Practical Example: News-Aware Volatility Forecasting on a Trading Desk

Who: A systematic trading desk at an asset manager forecasting next-day volatility for an equity index, the finance series threaded through Chapter 6 and Chapter 14.

Situation: Their GARCH-and-deep-learning volatility model was accurate in calm regimes but consistently late at the onset of stress, spiking only after volatility had already jumped, because the numeric channel can only react to realized moves.

Problem: The information that a regime was about to change, a central-bank surprise, an earnings shock, a geopolitical headline, lived in the news hours before it reached the price series, and the numeric model had no access to it.

Dilemma: Three options. Stay numeric-only, accepting the lag. Early-fuse a news embedding by concatenation, risking the high-dimensional text swamping the numeric window (the imbalance of the numeric-example callout) and breaking whenever the news feed was delayed. Or cross-attend the numeric query to a stream of timestamped news embeddings, with a causal mask so no future headline leaked.

Decision: They chose cross-attention fusion, projecting both the numeric features and the sentence-embedded headlines to a shared width and masking any headline dated after the forecast timestamp, and they trained with news dropout so the model still functioned when the feed lagged.

How: Headlines were embedded once, time-aligned to the trading grid by forward-fill (carry the last embedding until the next headline) with strict causality per Chapter 2, and the cross-attention layer of subsection two pulled the relevant headlines for each forecast.

Result: An honest ablation (text replaced by a constant) credited fusion with a measurable reduction in onset-of-stress lag; the model now moved its volatility estimate on the headline, hours before the realized move, and degraded gracefully to the numeric baseline when the feed was down.

Lesson: The second modality pays off precisely because it is timely and non-redundant, it leads the numbers, and cross-attention with a causal mask and modality dropout captured that lead without leaking the future or breaking when the feed went dark. State what the second channel knows and when, then let the ablation prove it.

Library Shortcut: Fusion in a Handful of Lines

The from-scratch fusion and manual training of Code 36.2.1 ran about 20 lines of hand-written gradient descent and concatenation. The scikit-learn pipeline of Code 36.2.2 collapses the embed-concatenate-fit pipeline to roughly 8 declarative lines, with the encoding, fusion, and least-squares solve internal. For learned text and cross-attention fusion, the modern stack is shorter still: a HuggingFace AutoModel embeds the text in two lines, a PyTorch nn.MultiheadAttention layer performs cross-modal fusion in one, and a library such as PyTorch Forecasting or GluonTS supplies the numeric encoder and training loop, so a complete multimodal forecaster is tens of lines rather than the hundreds a from-scratch build would demand. The library handles tokenization, batching, masking, and the attention arithmetic; you supply the alignment and the architecture choice.

Exercises

  1. (Conceptual) For each of the three modalities below paired with a numeric forecast target, state in one sentence what the modality knows that the numeric series does not, and whether it knows it before the numbers would reveal it: (a) clinical notes paired with a vitals deterioration forecast; (b) a satellite image stream paired with a crop-yield forecast; (c) a re-encoding of yesterday's price paired with a price forecast. Identify which pairing fails the timely-and-non-redundant test of subsection one, and explain why.
  2. (Implementation) Extend Code 36.2.1 to replace the one-hot text context with a small learned embedding (a $3 \times 4$ embedding matrix trained jointly with the forecaster by adding its gradient to the manual update). Report the new fused dimension and confirm the MSE is no worse than the one-hot version. Then deliberately introduce a one-step alignment error (shift ctx_id forward by one day, so the model sees tomorrow's context today) and report how much the MSE drops, explaining why this apparent improvement is in fact a leak.
  3. (Open-ended) Design an evaluation protocol that certifies a multimodal forecaster's gain is real rather than a leak or a parameter-count artifact. Specify the ablations (at minimum: text replaced by noise, and text held constant), the parameter-matched numeric baseline, and the causal-alignment audit. Then argue whether your protocol would catch a benchmark whose text channel trivially encodes the target, connecting your answer to the evaluation challenge of subsection four and the leakage discipline of Chapter 2.