Loading module…
Loading module…
Module 1 of 6
Most of what you have heard about artificial intelligence is either marketing or mythology. The marketing tells you AI is a thinking machine on the verge of consciousness. The mythology tells you it is a black box no one understands, an alien intelligence that might wake up one morning and decide it no longer needs us. Both stories are wrong, and both are wrong in the same way: they treat AI as a kind of mind. It is not a mind. It is a mathematical function — an extraordinarily large one, fitted to data by a mechanical procedure, that turns inputs into outputs. Everything else you will ever read about AI, every capability and every limitation, follows from that single fact. This module builds the fact carefully, from the ground up, so that when the later modules talk about neural networks and language models you already know what they are made of.
The reason this matters is not academic. The gap between what AI is and what people believe it is has become the single most expensive misunderstanding in modern technology. Companies deploy systems they believe can reason and discover they cannot. Investors price companies as though the technology has capabilities it does not have. Individuals trust outputs they should verify and distrust outputs they should use. Every one of these errors traces back to not understanding the thing at the level of its actual mechanism. By the end of this module you will be able to look at any AI system — a spam filter, a chess engine, a chatbot, a self-driving car — and say precisely what kind of thing it is, what it can do, and where its edges are.
Ask ten people what artificial intelligence is and you will get ten definitions, most of them circular. "AI is machines that are intelligent." "AI is computers doing human-like thinking." These definitions fail because they lean on the word intelligent, which no one can define precisely, and because they smuggle in an assumption — that the machine is doing something like what a human does — that turns out to be false in almost every case.
Here is a definition that does not fail. Artificial intelligence is the use of computation to produce outputs that, if a human produced them, we would call intelligent. Notice what this definition does and does not claim. It says nothing about how the output is produced. It makes no claim about understanding, awareness, or reasoning. It simply points at a behavior — a spam filter separating junk from real mail, a program recognizing a face, a system translating French to English — and observes that the behavior is one we associate with intelligence when a person does it. Whether the machine is "really" intelligent is left open, because for every practical purpose it does not matter. What matters is the behavior and the mechanism that produces it.
This is called the behavioral definition of AI, and it is the one that working engineers actually use, whether or not they state it. It has a long history. In 1950 the mathematician Alan Turing proposed to sidestep the unanswerable question "can machines think?" by replacing it with a testable one: can a machine produce conversational responses indistinguishable from a human's? This is the Turing Test, and its genius is precisely that it refuses to ask about the machine's inner life. It asks only about behavior. Turing understood something that took the field decades to relearn: the question of whether a machine understands is a philosophical swamp, and you can build enormously useful systems without ever setting foot in it.
Let us trace a concrete case to make the definition solid. Consider a program that filters spam. It examines an incoming email and outputs one of two labels: SPAM or NOT SPAM. When it works well, it separates the junk from the real mail exactly as an attentive human assistant would. By the behavioral definition, this is AI — the output is one we would call intelligent if a person produced it. Now look inside. The program does not "understand" that an email offering you a Nigerian inheritance is a scam. It has no concept of Nigeria, inheritance, or deception. What it has is a table of statistics: over thousands of past emails labeled by humans, the word "inheritance" appeared in 94% of spam and 2% of legitimate mail; the phrase "unsubscribe" appeared in 60% of legitimate marketing mail and rarely in personal mail; a message with seven exclamation marks in the subject line was spam 89% of the time. The program multiplies these probabilities together and outputs whichever label the math favors. That is the entire mechanism. There is no comprehension anywhere in it. And yet it works — often better than a human, because it never gets tired and never forgets a pattern.
This is the shape of nearly all AI. A behavior we would call intelligent, produced by a mechanism that contains no intelligence in the sense we usually mean. The spam filter is not a small mind. It is a large lookup table with arithmetic on top. Hold that image, because everything from the simplest classifier to the largest language model is a more elaborate version of exactly this.
Key Insight: AI is defined by what it does, not by what it is inside. A system is "AI" when it produces outputs we would call intelligent if a human produced them — and it can do this with a mechanism that contains no understanding at all. The spam filter proves the point: it separates scam from legitimate mail flawlessly while having no concept of what a scam is.
The reason AI confuses people is that the word "intelligence" bundles together a dozen distinct capabilities that, in humans, happen to come packaged together — but which, in machines, come completely apart.
When you say a person is intelligent, you might mean any of the following: they can recognize patterns (a doctor spotting a tumor on an X-ray); they can reason through steps (a mathematician proving a theorem); they can learn from few examples (a child who touches a hot stove once and never again); they can transfer knowledge across domains (someone who learns to cook and finds it helps them understand chemistry); they can set their own goals (deciding what to work on); they can understand meaning (knowing that "the cup is on the table" describes a real spatial arrangement); they can be aware of their own thinking (noticing they are confused). In a human, one brain does all of these, so we lump them under one word.
Machines shatter this bundle. A chess engine has superhuman ability at one narrow reasoning task and zero ability at everything else — it cannot recognize a cat, hold a conversation, or set a goal. An image classifier can recognize ten thousand kinds of objects with superhuman reliability and cannot play tic-tac-toe. A language model can produce fluent text on any topic and cannot reliably add two large numbers. Each of these possesses one slice of what we call intelligence and none of the others. This is why the phrase "the AI is intelligent" is almost always misleading: it invites you to assume the other slices are present when they are not.
The field has a vocabulary for this, and learning it immunizes you against the confusion. Narrow AI (also called weak AI) is a system that performs one task or a tight cluster of related tasks. Every AI system that exists today, without exception, is narrow AI. The chess engine, the spam filter, the face recognizer, the language model, the self-driving car — all narrow. Each is superb within its slice and helpless outside it. Artificial General Intelligence (AGI) is the hypothetical system that would possess the full bundle: able to learn any task a human can, transfer knowledge across domains, and operate with the flexibility of a human mind. AGI does not exist. Whether it can exist, and if so when, is a matter of genuine and unresolved debate among serious researchers — a debate we will treat honestly in the final module, not with the breathless certainty of either the boosters or the doomsayers. Artificial Superintelligence (ASI) is the further hypothetical of a system that exceeds human ability across the full bundle. It is, at present, entirely speculative.
The practical payoff of this vocabulary is that it lets you decode marketing. When a company says its product "uses AI," it means narrow AI, always — a specific function trained for a specific task. When a headline says "AI can now do X," the honest translation is "a narrow system was built that does X, and does nothing else." When someone tells you AI is "getting close to human intelligence," ask which slice. Often the answer, once you force the specificity, is that the system has gotten dramatically better at one slice — say, generating fluent text — while remaining at zero on most of the others, such as reliably tracking whether its own statements are true.
There is a famous illustration of how the slices come apart, known as Moravec's paradox, named for the roboticist Hans Moravec, who observed it in the 1980s. The tasks that are hard for humans — playing grandmaster chess, integrating calculus, recalling ten thousand facts — turned out to be easy for machines. The tasks that are effortless for humans — recognizing a friend's face, picking up a coffee cup without crushing it, understanding that a joke is a joke — turned out to be staggeringly hard for machines. A machine reached world-champion chess strength in 1997; a machine that can reliably fold a random pile of laundry did not exist for decades afterward and is still unreliable. The paradox dissolves once you understand that "intelligence" was never one thing. The abilities humans find hard are the recently evolved, deliberate, step-by-step ones, which happen to suit a computer's strengths. The abilities humans find easy are the deeply evolved perceptual and motor ones, refined over hundreds of millions of years, which happen to be exactly what computers are worst at. There is no single axis of "smart" along which machines are climbing toward us. There are many axes, and machines are far ahead on some and far behind on others.
Key Insight: "Intelligence" is not one capability but a bundle of distinct ones that, in humans, come together and, in machines, come completely apart. Every AI that exists is narrow — superhuman at one slice, absent on the rest. The moment you ask "which slice?" of any AI claim, the marketing fog clears.
There are, historically, two fundamentally different ways to build a system that produces intelligent-seeming behavior, and the difference between them is the most important structural fact in the whole field. Understanding it explains why AI spent forty years disappointing people and then, quite suddenly, started working.
The first family is symbolic AI, also called "good old-fashioned AI" (GOFAI) or rule-based AI. The idea is intuitive and, for a long time, seemed obviously correct. If you want a machine to behave intelligently, you write down the rules of intelligent behavior explicitly, as instructions the computer follows. To build a medical diagnosis system, you sit down with doctors, extract their knowledge — "IF the patient has a fever AND a cough AND a specific pattern on the chest X-ray, THEN consider pneumonia" — and encode thousands of such rules. The machine's "intelligence" is the human expert's knowledge, transcribed into a form the computer can execute. This approach dominated AI from the 1950s into the 1980s and produced real systems: expert systems that diagnosed diseases and configured computer orders, theorem provers, and the chess programs that eventually beat the world champion.
Symbolic AI has genuine strengths. Its reasoning is transparent — you can read the rules and see exactly why it reached a conclusion. It is precise where the rules are precise. And for problems that really are governed by clean, statable rules, it is unbeatable: this is why the world's strongest chess and Go engines and every piece of tax-preparation software still rest on symbolic foundations. But symbolic AI has a crippling weakness, and the weakness is why it stalled. It requires that all the relevant knowledge be stated explicitly in rules — and for most of the things humans do effortlessly, the knowledge cannot be stated. Try to write the rules for recognizing a cat. Not a cartoon cat — a real cat, in any pose, any lighting, any breed, partly hidden behind a chair, seen from behind. You cannot do it. There is no finite set of IF-THEN rules that captures "cat," because your own recognition of cats is not built from rules you could write down. It is built from having seen thousands of cats and absorbing the pattern below the level of conscious articulation. This is called the knowledge acquisition bottleneck, and it is what killed the dream of building intelligence by writing rules. For any messy real-world perception task, the rules either do not exist or are too numerous and too full of exceptions to ever finish writing.
The second family solves exactly this problem, and its triumph over the last fifteen years is the reason you are hearing about AI at all. It is machine learning. The idea is a complete inversion of the symbolic approach. Instead of writing the rules yourself, you write a procedure that discovers the rules from examples. You do not tell the machine what a cat looks like. You show it a hundred thousand pictures, each labeled "cat" or "not cat," and you run a mechanical procedure that adjusts the machine's internal numbers until it reliably outputs the right label. The machine ends up with something that functions like a rule for recognizing cats — but no human wrote that rule, and in most cases no human can even read it. It lives as a pattern in a large array of numbers, extracted from the data by the learning procedure.
The distinction is worth stating as sharply as possible, because it is the hinge of the entire field. In symbolic AI, a human supplies the rules and the machine applies them. In machine learning, a human supplies the examples and the machine derives the rules. The spam filter from Section 1 is machine learning: no one wrote the rule "inheritance means spam"; the program measured it from labeled examples. The tax software is symbolic: the tax code is a set of explicit rules a human wrote down, and the software executes them. Both are AI by the behavioral definition. They are built on opposite principles.
Almost everything that has excited the world in the last decade — image recognition, speech recognition, machine translation, the language models that write essays and code — is machine learning, and specifically a branch of it called deep learning that the next modules will build out in detail. The reason the excitement is recent, even though the ideas are old, is that machine learning has a voracious appetite: it needs enormous quantities of example data and enormous amounts of computation to digest them. Those two ingredients — vast labeled datasets from the internet, and vast cheap computing power from specialized chips — only became available in quantity around 2010. The ideas waited decades for the world to catch up to their requirements. When it did, the field did not improve gradually. It transformed.
Key Insight: There are two ways to build intelligent behavior: write the rules yourself (symbolic AI) or write a procedure that learns the rules from examples (machine learning). Symbolic AI stalled because the rules for messy real-world tasks cannot be written down. Machine learning broke through by never requiring anyone to write them — it derives them from data, which is why it can do the perceptual tasks that defeated forty years of rule-writing.
The word "learning" in "machine learning" is one of the most misleading terms in all of technology, because it invites you to picture something like human learning — a machine that reads, understands, and grows in wisdom. That is not what happens. Machine learning is a specific, narrow, entirely mechanical process, and seeing it clearly is the single most demystifying step you can take. Once you understand what "learning" really refers to, half the mystique of AI evaporates and what remains is something you can reason about precisely.
Here is what learning actually is. Start with a model — think of it, for now, as a mathematical formula with a large number of adjustable knobs. These knobs are called parameters or weights. At the start, they are set to random values, so the model's outputs are garbage: show it a picture of a cat and it says "cat" with 50% confidence and "not cat" with 50% confidence, no better than a coin. Now you run the learning process, which is a loop that repeats, often millions of times, and does exactly three things each pass.
First, prediction: feed the model a training example whose correct answer you already know — a cat photo labeled "cat" — and let the model, with its current knob settings, produce an output. Early on, this output is wrong.
Second, error measurement: compare the model's output to the known correct answer using a formula called a loss function, which produces a single number measuring how wrong the model was. Large number, very wrong. Small number, nearly right. This number is the only feedback the system gets, and the entire goal of learning is to make it small.
Third, adjustment: change the knobs by a tiny amount in the direction that would have made the error smaller. Not a guess — a calculated direction. There is a mathematical procedure (the next module details it) that computes, for every single knob, whether nudging it up or down would have reduced the error, and by roughly how much. Every knob gets nudged the appropriate tiny amount. The model is now infinitesimally less wrong on that one example.
Then the loop repeats with the next example, and the next, and the next, cycling through the entire dataset many times. Each individual adjustment is minuscule and, on its own, meaningless. But run the loop across millions of examples and billions of adjustments, and something remarkable accumulates: the knob settings drift, collectively, into a configuration where the model's outputs are usually right. The pattern that separates cats from non-cats — the pattern no human could write as rules — ends up encoded in the specific numerical values of millions of knobs. Nobody chose those values. They were ground out, one tiny nudge at a time, by the relentless mechanical minimization of an error number.
That is the whole of it. "Learning," in machine learning, means automatically adjusting numerical parameters to reduce a measured error on training examples. There is no understanding involved, no insight, no comprehension of what a cat is. There is a formula, an error measurement, and an adjustment rule, iterated until the error is small. When someone says a model "learned to recognize faces," the literal, deflationary, and completely accurate translation is: "a numerical optimization procedure adjusted several million parameters until the model's output error on a face dataset became small." It is closer to how water "learns" the shape of its container than to how a student learns history. The water is not trying to fit the container; it simply flows downhill until it settles at the lowest point available. Machine learning flows downhill on the error landscape until it settles where the error is low.
This deflation is not a criticism. It is the key that unlocks the whole subject. Because once you see learning as blind error-minimization, the strengths and the failure modes of AI stop being mysterious and become predictable. Why does a model work brilliantly on data like its training data and fail bizarrely on data unlike it? Because it only ever minimized error on the training data — it has no basis for anything else. Why can a model be confidently, fluently wrong? Because "confidence" is just another number the training pushed around, and nothing in error-minimization guarantees that confidence tracks truth. Why does a model reflect the biases in its training data? Because minimizing error on biased data means reproducing the bias — that is what low error on that data means. Every one of these behaviors, which look like baffling quirks from the outside, is the direct and logical consequence of what learning actually is. We will return to each of them, and each time the explanation will trace back to this section.
Key Insight: "Learning" in machine learning is not comprehension — it is the automatic, mechanical adjustment of millions of numerical knobs to make a measured error small on training examples. The model flows downhill on an error landscape the way water flows downhill in a container. Seeing this clearly is what makes every later behavior of AI — its brittleness, its confident errors, its inherited biases — predictable rather than mysterious.
Every machine learning system, from the humblest spam filter to the largest language model, is built from exactly three ingredients. If any one is missing or inadequate, the system fails, and the nature of the failure depends on which ingredient was weak. Knowing the three lets you diagnose any AI system and predict where its problems will come from.
Ingredient one: data. Machine learning derives its rules from examples, so it needs examples — usually a great many, and of high quality. The phrase engineers use, only half in jest, is "garbage in, garbage out," and it is the iron law of the field. A model can only learn the patterns that are present in its data. If the patterns are wrong, incomplete, or biased, the model learns wrong, incomplete, or biased patterns, and no amount of clever engineering downstream can fix a defect that entered here. Consider a real and consequential example. Early facial-recognition systems performed far worse on dark-skinned faces than on light-skinned ones — not because anyone designed them to, but because the datasets they were trained on contained far more light-skinned faces. The models minimized error on the data they were given, and the data underrepresented a large part of humanity, so the models learned that part poorly. The bias was in the data before it was in the model. This is why data is listed first: it is the foundation, and it determines the ceiling on everything above it. The quantity matters too. Simple tasks may need hundreds of examples; recognizing images needs hundreds of thousands to millions; training a large language model consumes a substantial fraction of all the text on the public internet.
Ingredient two: algorithms. This is the recipe — the specific mathematical structure of the model (its architecture) plus the specific learning procedure that adjusts its knobs. Different problems call for different structures. A model built to recognize images uses an architecture (the convolutional network, covered later) suited to the grid-like structure of pixels. A model built for language uses a different architecture (the transformer, the subject of a whole later module) suited to sequences of words. Choosing and designing these algorithms is where most of the human ingenuity in AI lives. But note carefully: the algorithm does not contain the knowledge. It is the empty machinery that extracts knowledge from data. A brilliant algorithm fed poor data produces a poor model. The algorithm sets how efficiently and how well the system can learn from whatever data it is given; it cannot conjure patterns the data does not contain.
Ingredient three: computation. Learning, as Section 4 showed, means running a loop millions or billions of times, each pass doing arithmetic across every parameter. For a large model, this is an astronomical amount of calculation — quantities that would have been physically impossible a generation ago. This ingredient is pure engineering muscle: processors fast enough, and numerous enough, to grind through the arithmetic in a practical amount of time. The specific breakthrough was the realization around 2009–2012 that a particular kind of chip — the Graphics Processing Unit or GPU, originally built to render video-game images — happened to be ideally suited to the arithmetic of machine learning, because both tasks are dominated by the same operation (multiplying large arrays of numbers in parallel). GPUs made it possible to train models hundreds of times faster than ordinary processors, and that single hardware fact is as responsible for the modern AI boom as any algorithmic idea. Without enough computation, a model that could in principle learn a task simply never finishes learning it, or must be made too small to learn it well.
Now see how the three interlock, because this is the part that explains the timeline of the whole field. The core algorithms of modern AI — neural networks, the learning procedure that trains them — were largely invented decades ago, some in the 1950s and most by the 1980s. They did not work well then. People concluded the ideas were flawed. But the ideas were not flawed; they were starved. They lacked ingredient one and ingredient three. There was not enough data — the internet had not yet generated the oceans of text and images these methods needed — and there was not enough computation — the chips were too slow. The algorithms sat on the shelf, correct but inert, for a quarter of a century. Then, around 2010, both missing ingredients arrived at once. The internet had produced vast labeled datasets. GPUs had made the computation cheap. The old algorithms, suddenly fed and powered, roared to life. This is the honest explanation for why AI seemed to explode out of nowhere in the 2010s: it was not a new idea, but an old idea finally given the two things it had always needed. Anyone who tells you the recent progress is mostly due to some brilliant new conceptual insight is overstating the insight and understating the data and the chips.
Key Insight: Every AI system rests on three ingredients — data (the examples it learns from), algorithms (the machinery that extracts patterns), and computation (the muscle to run the learning). The modern AI boom was not a new idea but old ideas finally fed: the core algorithms existed for decades but were starved of data and compute until, around 2010, the internet and the GPU supplied both at once.
Having built up what AI is, we now demolish four persistent beliefs about what it is not. Each is widely held, each is false, and each becomes obviously false the moment you hold it up against the mechanism we have just described. Clearing these is as important as building the positive picture, because these four confusions are the source of nearly every bad decision people make about AI.
Confusion one: AI understands what it does. It does not, in any sense resembling human understanding. Return to the spam filter, which never understood what a scam was, or the cat classifier, which has no concept of "cat" — only a numerical pattern that happens to separate cat-pixels from non-cat-pixels. This holds all the way up. A language model that writes a fluent paragraph about grief has no experience of grief, no concept of grief, no model of what grief refers to in the world. It has a statistical pattern, extracted from human writing, about which words tend to follow which other words in grief-related contexts. The fluency is real and the pattern is real; the understanding is absent. The technical name for the trap here is the ELIZA effect, after a simple 1966 chatbot named ELIZA that mimicked a therapist by rephrasing users' statements as questions. Users poured their hearts out to it and insisted it understood them, though its author, Joseph Weizenbaum, knew it was a few pages of pattern-matching with no comprehension whatsoever. The lesson has been relearned with every generation of chatbot since: humans are wired to attribute understanding to anything that produces fluent language, and that instinct is a bug, not a guide. The fluency of a system tells you nothing about whether it understands.
Confusion two: AI is objective because it is mathematical. The intuition is that math has no opinions, so a system built from math must be neutral. This is exactly backwards. A machine learning model is a compressed summary of its training data, and if that data reflects human biases — which real-world data almost always does — the model reflects them too, now laundered into the appearance of mathematical objectivity, which makes them more dangerous, not less. A hiring model trained on a company's past hiring decisions will learn to reproduce whatever biases were in those decisions; it will simply do so at scale, quickly, and with a veneer of impartiality that discourages anyone from questioning it. The math does not remove the bias. The math faithfully preserves the bias, because preserving the patterns in the data is precisely what the math is built to do. "The algorithm decided" is never a defense against bias; it is often a description of how the bias was scaled up.
Confusion three: AI is conscious, or on the verge of becoming conscious. There is no evidence for this and no mechanism that would produce it. Consciousness — subjective experience, the felt quality of being something — is not something we know how to build, and nothing in the mechanism of a neural network suggests it arises there. A language model that writes "I feel sad" is executing the same word-prediction it uses to write anything else; the words describe a feeling but there is no feeling doing the describing, any more than the word "rain" printed on a page is wet. It is worth being careful here, because this is a place where honest people disagree about the deep philosophy of whether machines could ever be conscious. But that far-off philosophical question must not be confused with the concrete engineering fact about the systems that exist today: nothing in their construction produces or even points toward consciousness. When a system claims to have feelings, that claim is generated by the same statistical machinery that generates its claims about the weather, and carries exactly as much inner experience — which is to say, none.
Confusion four: AI is a single technology that is steadily getting smarter across the board. There is no such thing as "AI" in the singular, marching up a single ladder of intelligence. There are thousands of distinct narrow systems, each built for a specific task, each advancing at its own rate, many going nowhere. Progress in image recognition tells you little about progress in robotic manipulation; a breakthrough in language models does not mean self-driving cars are about to improve. The impression of a unified "AI" getting relentlessly smarter is a story the human mind assembles from scattered headlines, each about a different narrow system. The reality is a patchwork: dramatic progress in a few areas, modest progress in many, and stagnation or failure in others. When you read that "AI can now do X," it means one specific narrow system was built to do X. It does not mean the mythical singular AI has leveled up.
These four confusions share a common root, and naming it is the capstone of the whole module. They all come from taking the behavioral definition — AI produces outputs we would call intelligent — and quietly upgrading it into a claim about the inside: therefore AI must understand, must reason, must be objective, must be conscious, must be a mind. The behavioral definition supports none of that. It says the outputs look intelligent. It says nothing about the interior, because the interior, as we have now seen in detail, is data, algorithms, and computation — a very large function fitted to examples. Hold the behavioral definition without the illegal upgrade, and all four confusions dissolve at once.
Key Insight: AI does not understand its outputs, is not made objective by being mathematical, shows no sign of consciousness, and is not one technology climbing a single ladder. All four confusions come from the same illegal move — taking "the output looks intelligent" and secretly upgrading it to "therefore there is a mind inside." There is no mind inside. There is a function fitted to data.
You now have the load-bearing fact of the entire subject: AI is a mathematical function, fitted to data by a mechanical error-minimizing procedure, that turns inputs into outputs — and every capability and every failure follows from that. You can define AI behaviorally without smuggling in a mind. You can tell narrow AI (all of it, today) from the hypothetical AGI and ASI. You can distinguish the two great families — symbolic AI that applies rules a human wrote, and machine learning that derives rules from examples — and you know why the first stalled and the second broke through. You know that "learning" means adjusting numerical knobs to shrink an error, nothing more. You know the three ingredients — data, algorithms, computation — and why the recent boom was old ideas finally fed. And you can dismantle the four great confusions by refusing the illegal upgrade from behavior to mind.
The next module, Machine Learning Fundamentals, opens up the middle of that picture. We treated "the model adjusts its knobs to reduce error" as a single move; now we slow it down and examine the actual varieties of machine learning — supervised, unsupervised, and reinforcement learning — and the concepts that govern all of them: features, training and test data, the central and unavoidable problem of overfitting, and why a model that scores perfectly on its training data can still be worthless in the real world. Everything there is a direct continuation of the mechanism you have just learned. When Module 2 says a model "generalizes," you will hear it correctly: it means the pattern the knobs settled into on the training examples also happens to hold on examples the model never saw — which is the only thing that makes a fitted function useful, and, as you will see, the thing that is hardest to guarantee.