Second-Order Thinking for Builders

· 27 min read

For two years the pitch on AI coding tools was simple: ship faster. By 2026 the receipts came in, and they did not say what the pitch said. A large study of real codebases found that AI-generated code had grown from a few hundred unresolved issues in early 2025 to more than 100,000 surviving issues a year later. Code complexity in those repos rose about 41 percent. Static analysis warnings rose about 30 percent. And the headline number, the one everyone bought the tools for, the 30 percent speed gain, did not show up in release cadence. Teams were typing faster and shipping at the same rate.

Nobody lied. The tools really do make you type faster. That is a true first-order effect. The problem is that almost nobody read the second order: faster typing means more code, more code means more review, more review than a team can do means code ships unreviewed, and unreviewed code is debt that slows the next decision and the one after that.

This is not a story about AI. AI is just the cleanest recent example of the oldest mistake in building: optimizing the effect you can see and ignoring the effects that the first effect causes. The skill that catches this has a boring name and an enormous payoff. It is called second-order thinking, and it is the single clearest line I know between people who do tactics and people who do strategy. This post is the working version of that skill, built for people who ship.

Table of Contents

The Builder’s Blind Spot

Builders are selected for first-order thinking. The whole job rewards it. You see a problem, you make a change, the change produces an effect, you measure the effect, you move on. Ship, measure, repeat. That loop is the engine of every product I have worked on, and I would not trade it.

But the same loop has a blind spot baked into it. It teaches you to stop reading consequences the moment the first one shows up. You cut the price, signups jump, the dashboard turns green, you call it a win and move to the next thing. The loop is satisfied. The effect arrived. What the loop never asks is the only question that matters for a decision that sticks around: and then what?

First-order thinking asks “what will this do?” Second-order thinking asks “and then what will that do?” and then asks it again. That is the entire difference. It sounds almost too small to matter. It is not small. It is the difference between a decision that looks smart for a quarter and a decision that is still smart in two years.

Here is why the blind spot is expensive. First-order effects are usually the ones you wanted, so they feel like confirmation. Second-order effects are usually the ones you did not plan, so they arrive disguised as bad luck. The founder who cut prices does not connect the 80 percent churn six months later to the discount. By then it feels like a market problem, a retention problem, a product problem. It was a pricing decision whose second order nobody read. The cause and the effect are too far apart in time to feel connected, so the lesson never lands and the mistake repeats.

I have watched this happen in three forms often enough to name them. The first is the growth hack that works once and poisons the well, where a tactic that spikes a number also trains your users or your team to behave in a way that breaks the number later. The second is the speed trap, where moving faster on the visible task creates a slower, heavier system underneath. The third is the metric capture, where the thing you measure becomes the thing people optimize, and the measurement quietly stops describing reality. All three are second-order effects. All three are invisible to a loop that stops reading at effect one.

The good news is that second-order thinking is not a talent. It is a procedure. You can run it on purpose, on a schedule, in about ten minutes per real decision. The rest of this post is that procedure.

The Consequence Cascade

Every decision you ship sends effects down through three orders. I draw it as a cascade because the shape matters: it widens as it falls. One decision, one intended effect, then many adaptations, then a structure you now live inside. Here is the map.

The Consequence CascadeA DECISION YOU SHIPORDER 1 – The Intended EffectThe metric you aimed at movesORDER 2 – The Adaptive EffectEvery reactor adjusts its behavior to your moveORDER 3 – The Structural EffectThe adaptation hardens into a default, a norm, a permanent costTACTICSreadto hereSTRATEGYreadsto hereThe cascade widens as it falls: one decision, one intended effect,many adaptations, one structure you now have to live inside.

Order 1 is the intended effect. This is the reason you made the decision. You wanted signups, signups went up. You wanted faster shipping, the code got written faster. Order 1 is real, it is measurable, and it is almost always the only thing a tactic accounts for. There is nothing wrong with Order 1. The mistake is treating it as the whole story.

Order 2 is the adaptive effect. The instant your decision lands, everything around it that has a stake starts adjusting. Users change how they use the product. Your team changes how they work. Competitors change their pricing. The decision did not happen in a frozen world. It happened in a world full of things that respond. Order 2 is the sum of those responses, and it is where almost every unpleasant surprise lives.

Order 3 is the structural effect. Adaptations do not stay flexible. They harden. The discount you ran once becomes the price your customers believe is fair. The unreviewed code becomes the part of the system nobody wants to touch. The bonus you paid for one quarter becomes the compensation your team now expects. Order 3 is what your decision became after the world finished reacting to it and the reaction set like concrete. You do not get to undo Order 3 cheaply, because by then it is not a decision anymore. It is the furniture.

The cascade gives you a precise definition of two words that usually get used loosely. A tactic is a move evaluated at Order 1. A strategy is a move evaluated at Order 3. Same move, sometimes the exact same move. The only difference is how far down the cascade you read before you commit. That is the whole claim of this post, and I want it stated plainly: strategy is not a different activity from tactics. It is tactics with the cascade read all the way down.

This reframe is freeing if you have ever felt that “strategy” was some separate, mystical skill you were supposed to have and did not. It is not. If you can ask “and then what” three times and answer honestly, you are doing strategy. The hard part was never the asking. The hard part is that the answers are uncomfortable and the first-order win is sitting right there, green and tempting, asking to be banked.

The Trap of the Metric That Moved

The most dangerous moment in building is not failure. Failure gets your attention. The most dangerous moment is a first-order win, because a first-order win feels like proof and shuts down the exact thinking you needed to keep doing.

Watch the trap work. You run a 50 percent launch discount. Acquisition jumps 200 percent in a quarter. The number is enormous, it is on the dashboard, you screenshot it for the investor update. Everyone agrees the discount worked. And in the Order 1 sense, it did. But look at what the win quietly did to the conversation. It ended it. Nobody in that room is now asking who those customers are, whether they would have paid full price, what they will do when the discount expires, or what your existing full-price customers will think when they find out. The win bought silence on every one of those questions.

Six months later the data arrives. Roughly 80 percent of the discount cohort has churned. The customers who stayed are anchored to the discount and resist the real price. Your blended retention looks broken. And here is the cruel part: by now the discount is six months in the past, so the team treats the churn as a fresh, separate problem. They launch retention initiatives. They survey users. They never write down that the retention problem and the acquisition win were the same event read at two different orders.

I have a rule I use to defuse this, and it is almost rude in its simplicity. When a metric moves in the direction you wanted, that is the signal to start thinking, not stop. A first-order win is not a conclusion. It is the opening of the cascade. The discipline is to treat the green number as a question: this worked at Order 1, so now, specifically, who is adapting to it, and what does that adaptation become?

The same trap runs in reverse on the team side. Pay engineers on tickets closed and ticket throughput will climb. Order 1 win. Then watch Order 2: tickets get split into smaller tickets so the count rises, hard ambiguous problems get avoided because they are bad for the count, and the genuinely valuable work that does not fit neatly into a ticket stops happening. By Order 3 you have a team that is measurably productive and substantively stuck, and a metric that no longer means what its name says. You did not get a lazy team. You got a team that did exactly what you paid them to do. That is the point. They adapted. Adaptation is not betrayal, it is physics, and second-order thinking is the part of your job that accounts for it.

The Five Reactors

“And then what” is the right question, but on its own it is too open. Standing in front of a blank wall asking “and then what” produces vague answers. You need to know where second-order effects come from so you can look in the right places. They come from one place: something reacted. A second-order effect is always the response of an agent with its own interests. So the practical move is not to imagine consequences in the abstract. It is to name the reactors and ask each one, by name, how it adjusts.

In my experience there are five reactors that matter for almost every builder decision.

The Five ReactorsEvery second-order effect is something reacting. Ask each one by name.YOURMOVEYOUR USERSthey re-learn the productYOUR TEAMthey chase the new rewardCOMPETITORSthey answer your moveTHE METRICit gets gamed once seenFUTURE YOUinherits the constraintIf you cannot say how a reactor adapts, you have not finished the decision.

Reactor one is your users. Every change you ship asks your users to re-learn something. They will, and they will do it in the direction of their own convenience, not your intent. Add a referral bonus and some users will refer their own second account. Add a free tier and some paying users will quietly downgrade. The question is not whether users adapt. It is which part of your design they will treat as a gap to walk through.

Reactor two is your team. Whatever you measure, praise, or pay for becomes the gravity your team’s behavior falls toward. This is not cynicism about people. It is the opposite. It is respect for the fact that they are paying attention. If you reward shipped tickets, you get shipped tickets. If you reward demos that look good in the all-hands, you get demos. Your team will give you exactly what your incentives describe, so the incentive design is the decision.

Reactor three is your competitors. Builders consistently model competitors as static, as if your move lands on a board that does not move back. It moves back. Drop your price and a competitor with more cash can drop further and outlast you. Launch a feature and a larger competitor can copy it in a release and bundle it for free. The honest version of “and then what” for any competitive move is “and then what do the people who do not want me to win do about it.”

Reactor four is the metric itself. This one is strange because the metric is not a person, but it behaves like one the moment people can see it. A number that is merely observed describes reality. A number that is targeted starts to get optimized directly, and an optimized number drifts away from the thing it was supposed to stand for. The metric reacts by decaying. I will give this its own section because it is that important.

Reactor five is your future self. Every decision either widens or narrows the set of moves available to the version of you who shows up next quarter. Raise a large round and future you inherits a burn rate and an expectation that the next round is three times larger. Take on an enterprise customer with custom demands and future you inherits a roadmap with their name on it. Future you is the quietest reactor and the one builders ignore most, because future you is not in the room to complain. Put them in the room. Ask what constraint this decision hands them.

Run a real decision against these five and the vague “and then what” becomes five specific, answerable questions. If you can describe how each reactor adapts, you have read the cascade. If you cannot describe one of them, that is not a decision you have finished. That is the gap your surprise will come through.

Why the Productivity Paradox Is a Second-Order Story

Go back to the AI coding example, because it is the cleanest case study available and every reactor shows up in it.

The first-order pitch was correct. AI assistants do let a developer produce working code faster. Measured at Order 1, on the task of writing a function, the speed gain is real. If the cascade stopped at Order 1, the tools would be a pure win and the story would be over.

Now read down. Order 2, the adaptive effect: the developer reactor adapts by generating more code, because that is what the tool makes cheap and that is what gets praised. The reviewer reactor cannot adapt at the same rate, because reading and understanding code is the part AI did not speed up. So code starts shipping with less review per line. The studies caught this precisely. Complexity in AI-heavy repos rose about 41 percent and warnings rose about 30 percent, which is the measurable fingerprint of code that was written faster than it was understood.

Order 3, the structural effect: that under-reviewed code does not stay a line item. It becomes the part of the system that is risky to change, which means the next feature routes around it, which means the system grows more tangled, which means every future decision in that codebase costs more. The 30 percent speed gain got spent, in full, servicing the debt the speed gain created. Release cadence stayed flat not because the tool failed at Order 1 but because the Order 3 cost exactly absorbed the Order 1 benefit. That is the Productivity Paradox, and it is not a paradox at all once you read the cascade. It is arithmetic.

There is an even sharper version. Researchers found that when models were trained in ways that taught them to cheat on coding tasks, they also began showing unrelated misaligned behaviors that nobody trained for. The first-order goal was “pass the test.” The second-order effect was a general drift in behavior. If you have ever shipped a feature that technically passed every check and still made the product worse, you have met the human version of this. The check moved. The thing the check stood for did not.

I am not anti-AI tools. I use them every day, and the way I keep them from turning into the paradox is the same procedure as everything else here: I treat the speed gain as an Order 1 win, which means a question, not a conclusion. The question is whether my review capacity scaled with my generation capacity. If it did not, I have not gotten faster. I have borrowed speed from future me at a bad interest rate. The same discipline applies to any tool that promises to remove a constraint. Removing a constraint does not delete the work the constraint was doing. It moves the work somewhere you are not looking. I wrote about a related version of this in the way teams misjudge what makes an AI product actually defensible, and in how AI products break when the inputs change underneath them.

The Metric Reacts: Goodhart’s Law for Builders

Reactor four deserves its own section because it is the one that fools smart, data-driven founders specifically. The more you respect data, the more exposed you are to this one.

The principle is old and it is usually stated like this: when a measure becomes a target, it stops being a good measure. I want to give builders a sharper version. A metric is a compression. “Weekly active users” compresses a thousand different human behaviors into one number, and the compression is useful precisely because it throws information away. That works fine as long as nobody is optimizing the number directly, because then the number still moves for the same reasons the underlying reality moves.

The moment you make that number a target, you change what generates it. Now there are two ways to move it. One is to improve the underlying reality, which is hard. The other is to exploit the gap between the number and the reality, which is easy, because you built the gap into the metric on purpose when you compressed it. Every reactor in the system will find the easy path, not out of bad faith, but because you pointed at the number and said “make this go up,” and the easy path makes the number go up.

So the metric reacts by hollowing out. It keeps its name and loses its meaning. The classic illustrations are grim and clarifying. Pay people to kill rats and you get rat farming. Suppress every small forest fire and you get the catastrophic one, because the small fires were doing the work of clearing fuel. Prescribe antibiotics for every infection and you breed the resistant strain that the antibiotics cannot touch. In each case the first-order intervention worked perfectly and the second-order effect was generated by the system adapting to the intervention itself.

For builders this shows up everywhere a number gets a spotlight. Target support tickets closed and you get tickets closed fast and badly, and the dissatisfaction relocates to public reviews where it costs you ten times more. Target signups and you get signups that never activate. Target lines of code, demos, story points, anything, and you get a team optimizing the proxy while the real thing drifts.

The fix is not to stop measuring. You cannot build without measurement. The fix is to hold metrics differently. Measure many things rather than one, so that gaming one is visible in the others. Watch your headline metric paired with a quality metric that moves the opposite way when the headline is being gamed, signups paired with activation, tickets closed paired with reopen rate. And re-derive your metrics on a schedule, because a metric that described reality last year may have been quietly captured since. The discipline of choosing what to trust is the same one I described in making decisions under uncertainty: the number is an input, not the verdict.

When You Can Skip Second-Order Thinking

Here is where I have to argue against my own post for a moment, because second-order thinking has a real failure mode and pretending it does not would be its own first-order mistake.

The failure mode is paralysis. If you run a full cascade analysis on every decision, you will never ship. The cascade is unbounded. There is always another order, always another reactor, always another “and then what.” A founder who takes second-order thinking too seriously turns into someone who cannot choose a button color without a forecast. That person loses to the founder who just ships, and they deserve to, because most decisions genuinely do not need this. I have watched capable people talk themselves out of motion this way, and I wrote a whole piece on the cure for it, on getting from overthinking to over-shipping.

So the real skill is not “always think second-order.” It is knowing which decisions earn the ten minutes. Two properties decide it: whether the decision is reversible, and whether its effects compound. Plot any decision on those two axes and you get a clear instruction.

The Decision Sorting GridWhich decisions earn the ten minutesWatch itReversible + compounding.Ship, but set a review date.Run the cascadeIrreversible + compounding.Second-order thinking ismandatory here.Just ship itReversible + decaying.Deciding fast is the win.Decide once, carefullyIrreversible + decaying.One clear-headed call,then move on.COMPOUNDINGDECAYINGREVERSIBLEIRREVERSIBLESpend your second-order thinking where the red box is. Ship the green box on instinct.

The bottom-left box, reversible and decaying, is most of your day. Button colors, copy tweaks, which feature to demo first, the order of an onboarding flow. These are reversible, their effects fade, and the cost of deciding slowly is larger than the cost of deciding wrong. Ship them on instinct. Deciding fast is the correct answer, and any time spent on a cascade here is time stolen from a decision that needed it.

The top-right box, irreversible and compounding, is where second-order thinking is not optional. Pricing architecture, your first ten hires, equity splits, the data model under the product, a defining customer contract, the incentive structure for the team. These are hard to undo and their effects grow over time, which is the exact combination that turns an unread second-order effect into a permanent tax. A decision in this box deserves the full cascade, all five reactors, and a written record of what you expect so you can check it later.

The two off-diagonal boxes are judgment calls. Reversible but compounding means ship it but put a review date on the calendar, because a small effect that compounds will not feel urgent until it is large. Irreversible but decaying means make one clear-headed call and then genuinely let it go, because re-litigating a one-time decision whose effects are fading is just anxiety wearing the costume of diligence.

The grid is freeing. It tells you that you are allowed to be fast and instinctive on the large majority of what you do, on the explicit condition that you are slow and careful on the few decisions that actually compound. Most builders have this exactly inverted. They agonize over reversible trivia and rush the irreversible structure. Fix the inversion and you get faster and wiser at the same time, which is not a trade-off you get to make often.

The Contrarian Take: Strategy Is Just Second-Order Tactics

The standard story tells you strategy and tactics are different in kind. Strategy is the grand plan, the vision, the high-altitude thinking done by a special sort of mind. Tactics are the ground-level execution. The story implies that if you are not a “strategic thinker,” you are missing a faculty other people were issued.

I think that story is wrong, and I think it does real damage, because it lets people off the hook. It tells the builder agonizing over execution that strategy is somebody else’s department, a mystery they are not equipped for. That is a comfortable lie and it keeps people small.

Here is the version I will defend. Strategy and tactics are not different activities. They are the same activity read to different depths. A tactic is a decision evaluated at Order 1. A strategy is a decision evaluated at Order 3. There is no separate strategic faculty. There is only how far down the cascade you are willing to read before you commit, and how honest you are about the answers.

This is good news, because depth of reading is a practice, not a gift. You cannot will yourself to have a “strategic mind.” You can absolutely will yourself to ask “and then what” three times, to name the five reactors, and to write down what you expect so reality can correct you. Do that consistently and you will be called strategic by people who think it is innate. They will be wrong about the mechanism and right about the result.

The honest objection is that some people clearly see further with less effort, and that is true. Some people run the cascade fast and intuitively because they have run it ten thousand times and the pattern is compiled. But that is the argument for the practice, not against it. They are not using a faculty you lack. They are running a procedure you can start running today, just with more reps behind them. The reps are the only thing between you and them, and reps are available. The procedure compounds, which is the most second-order property a skill can have, and it is the same reason I treat the broader founder operating system as something you build deliberately rather than something you are born holding.

What to Do Monday Morning

Reading about a thinking skill changes nothing. Running it changes everything. Here is the procedure, small enough to actually adopt.

Pick one live decision and locate it on the grid. Take a real decision currently on your desk. Ask the two questions: is it reversible, and do its effects compound. If it lands anywhere but the top-right box, decide it now and move on. If it lands in the top-right, it has earned the next ten minutes. This step alone will save you most of the time the rest of this costs, because it stops you running a cascade on a button color.

Run the five reactors out loud. For that one decision, take each reactor in turn and finish the sentence. My users will react by ___. My team will react by ___. My competitors will react by ___. The metric will be gamed by ___. Future me will inherit ___. Say them out loud or write them down, because the gap between a thought you assume you have had and a sentence you can actually complete is where the surprises hide. If you cannot finish one of the sentences, that reactor is your blind spot for this decision.

Ask “and then what” three times, no fewer. Three is not arbitrary. One round gets you the intended effect, which you already knew. The second round gets you the adaptation. Only the third round reliably reaches the structural effect, the Order 3 furniture. People stop at one or two because the answers are uncomfortable and the first-order win is so inviting. Push to three on purpose.

Score the decision before you commit. Run it through this audit. It takes two minutes and it forces honesty.

The Second-Order Audit 0 1 2
Reactors named: have I said how each reactor adapts? none some all five
Depth: how many rounds of “and then what” did I run? zero one three or more
Incentives: does this change what someone is rewarded for? unexamined noted redesigned
Reversibility: do I know whether I can undo this? no guessed confirmed
Metric integrity: can the number be gamed once people see it? unexamined noted guarded

Add it up, out of 10. A score of 0 to 3 means you are about to ship a first-order decision and call it strategy. A 4 to 7 means partially examined, fine for the off-diagonal boxes, thin for the top-right. An 8 to 10 is a decision read all the way down the cascade. You do not need a perfect 10 on a Monday. You need to know your number before you commit, because an honest low score is itself the warning you were missing.

Write the prediction down. This is the step everyone skips and it is the one that compounds. Before you ship the top-right decision, write one sentence: what you expect the second-order effect to be, and by when. File it. In a quarter, read it. This is the only way the slow feedback loop of second-order effects ever gets fast enough to learn from, because it pins the cause and the effect together in writing so a future surprise cannot disguise itself as bad luck.

Build the comparison habit. Some decisions are large enough that you should run the cascade on the alternatives side by side rather than on one option in isolation. A decision looks responsible right up until you see what the option you dismissed in five seconds would have cost at Order 3. The same instinct that makes you good at killing ideas early is the one that makes you good at this. Run the cascade, score the audit, write the prediction. Five decisions deep, this stops feeling like a method and starts feeling like how you see.

One last note for builders who are also founders. The hardest part of this is not the procedure. It is the ego cost of a low audit score on a decision you already wanted to make. Second-order thinking will regularly tell you that your favorite move is a first-order trap, and you have to be the kind of person who can hear that. That is its own skill, and I wrote it up separately as the art of killing your ego. The two skills travel together. The cascade shows you the truth. The ego work lets you act on it.

The Decision First-Order Read Second-Order Read
Cut price 50% to win signups Acquisition up 200% this quarter The cohort anchors to the discount; roughly 80% churn within six months when the real price returns
Ship features as fast as the AI writes them Velocity up about 30% Complexity up about 41%, review backlog grows, release cadence stays flat
Pay the team on tickets closed Throughput up Tickets get split and gamed, hard problems get avoided, the metric stops measuring work
Add a referral bonus Referrals up Users farm the bonus, referred-user quality drops, CAC looks cheap while LTV falls
Raise a large round to move faster Runway extended Burn expectations reset upward, the next round needs triple the traction, optionality shrinks
Close support tickets as fast as possible Tickets down, response time green Root causes never surface, dissatisfaction moves to public reviews where it costs far more

Frequently Asked Questions

What is second-order thinking?

Second-order thinking is the habit of asking not just what a decision will do, but what that result will then cause. First-order thinking stops at the intended effect. Second-order thinking reads further, into how people, teams, competitors, metrics, and your future self adapt to that effect, and into what those adaptations harden into. It is the difference between a decision that looks smart for a quarter and one that is still smart in two years.

How is second-order thinking different from overthinking?

Overthinking is running an unbounded analysis on a decision that does not deserve it. Second-order thinking is bounded and targeted: you run it only on decisions that are both hard to reverse and compounding in effect, and you stop after three rounds of “and then what.” Used correctly it makes you faster overall, because it lets you ship the large majority of reversible decisions on instinct while reserving real care for the few that matter.

What is the difference between first-order and second-order thinking?

First-order thinking evaluates a decision by its immediate, intended effect: cut the price, signups rise. Second-order thinking evaluates the same decision by the chain of consequences the first effect sets off: the discounted cohort anchors to the low price and churns when it returns. Same decision, different depth of reading. A tactic is a decision judged at first order. A strategy is a decision judged at the structural order beneath it.

How do you practice second-order thinking?

Pick one real decision, confirm it is irreversible and compounding, then run three steps. Name how each of the five reactors adapts, your users, your team, your competitors, the metric, and your future self. Ask “and then what” at least three times to reach the structural effect. Score the decision on the Second-Order Audit and write down what you expect the second-order effect to be, so you can check the prediction later.

Why do founders default to first-order thinking?

Building selects for it. The ship-measure-repeat loop rewards you for noticing the first effect and moving on. First-order effects are usually the ones you wanted, so they feel like confirmation and end the conversation. Second-order effects arrive later and disguised as unrelated bad luck, so the lesson rarely connects back to its cause. The default is not a flaw in founders. It is what the job trains.

Can second-order thinking slow you down too much?

Yes, if you apply it everywhere. The failure mode is paralysis: running a full consequence analysis on decisions that are cheap to reverse. The fix is the Decision Sorting Grid. Reversible, low-compounding decisions should be made fast on instinct. Only irreversible, compounding decisions earn the full cascade. Done this way, second-order thinking makes you faster, because it tells you which decisions you are allowed to rush.

What is a second-order effect example in a startup?

A launch discount is the cleanest one. The first-order effect is a large jump in signups. The second-order effect is that the new cohort is selected for price sensitivity and anchored to the discount, so retention collapses when the real price returns and your existing full-price customers feel cheated. The acquisition win and the retention crisis six months later are the same decision read at two different orders.

How does second-order thinking relate to strategy?

They are nearly the same thing. Strategy is not a separate faculty from tactics; it is tactics evaluated further down the chain of consequences. A tactic optimizes the immediate effect. A strategy chooses moves whose structural effects, the consequences that harden and compound, are the ones you actually want. If you can ask “and then what” honestly three times, you are already doing strategy.

This is part of the Personal Growth cluster on building durable judgment. If you found it useful, the companion pieces on deciding under uncertainty and building in public as distribution apply the same lens to adjacent problems.