What does a humaniser actually change? 20 AI-written passages, before and after
SGR-027, conducted 2026-11-10. Analyst: Jack Stovell, founder, ScriptGrain.
Question: When a humaniser rewrites AI-written text so that a detector scores it as human, what changes in the writing: the detector score, the AI tells, the measurable habits, the content, and whether the text sounds like any particular writer?
Summary
Background. AI humanisers rewrite machine-written text so that detectors score it as human. What they change in the writing is rarely published with the numbers in view. We tested ScriptGrain's own humaniser because it is the one we can run with every intermediate number recorded; we sell it, which is a competing interest stated below.
What we did. We fixed four hypotheses before any passage was generated. Twenty passages of 146 to 235 words were written from bare prompts with no style, voice or tone instruction: 5 everyday formats by 4 topics, 10 by Claude (claude-sonnet-5-5) and 10 by GPT (gpt-6-astra). Each was sent once to the humaniser, forced to rewrite even if it already passed, and both versions were measured: the detector's human score, AI tells per 1,000 words, five stylometric habits, voice match against one fixed profile, and what happened to numbers and first-person statements. Two passages (P01 and P11) came back word for word unchanged: the humaniser keeps whichever text scores highest on its detector, the original included, and for P01 none of its 3 passes scored above the original on its detector; for P11 its integrity guard discarded all 3 passes.
What we found. H1 (supported): the detector's human score rose, 0.51 to 0.69 on a 0 to 1 scale, a change of +0.18 (95% interval 0.14 to 0.23). H2 (not supported): AI-tell density did not clearly fall (0.24 to 0.47 per 1,000 words), a change of +0.24 (95% interval 0.00 to 0.71). H3 (supported): voice match against the fixed profile did not move beyond ±0.05 (0.74 to 0.74); the change was −0.001 (95% interval −0.027 to 0.025). H4 (supported): content survived in 20 of 20 pairs (no number lost or added, no first-person sentence invented); 0 pairs lost a number, 0 gained one and 0 gained a first-person sentence the original did not have.
What it means. This describes what one humaniser did to 20 short passages, scored by one detector. It does not show that the rewrite would pass any other detector, that it works on human writing, or that detector scores measure authorship. Four of the pairs are shown in full on this page and all twenty are in the data file, so a reader can judge the rewrites themselves.
Key numbers
- ScriptGrain's humaniser changed the mean detector human score of 20 AI-written passages from 0.51 to 0.69 (change +0.18 (95% interval 0.14 to 0.23); ScriptGrain, 2026; pre-registered, run once on 10 November 2026).
- AI tells per 1,000 words went from 0.24 to 0.47 after humanising (change +0.24 (95% interval 0.00 to 0.71)); 19 of the 20 originals had none to remove.
- Voice match against a fixed profile went from 0.74 to 0.74 (change −0.001 (95% interval −0.027 to 0.025); the pre-registered equivalence margin was ±0.05).
- 20 of 20 humanised passages lost no number, added no number and invented no first-person sentence.
- A default run, without the forced rewrite, would have skipped 0 of the 20 passages because the detector already scored them at or above the 0.85 target.
Sample
20 passages written on 12 October 2026 from bare prompts with no style, voice or tone instruction: 5 formats (blog intro, linkedin post, launch email, explainer, about page) by 4 topics (loft insulation, a weekly budgeting app, running after forty, a bakery), 10 by Claude and 10 by GPT, one generation per prompt, no retries and no editing. Original lengths ran from 146 to 235 words.
- One passage per frozen prompt (5 formats by 4 topics)
- Generator fixed by the prompt's position: 10 Claude, 10 GPT
- At least 50 words (the humaniser's minimum)
Method
Corpus: the prompts and the generator of each were frozen in the pre-registration before any generation. Every prompt had the same suffix, "Output only the text.", on both generators. Claude passages came from Claude (claude-sonnet-5-5) through the claude command-line tool and GPT passages from GPT (gpt-6-astra) through the codex command-line tool. The passages were generated once, before the measurement day, and were not touched afterwards.
Treatment: each passage was sent once to ScriptGrain's humaniser (api-v1 POST /v1/humanize) with force set, so every passage was rewritten even if it already passed, and with the default target of 0.85. The humaniser's own integrity guard stayed on.
Measures: on the original and on the rewrite, the detector's human score (POST /v1/ai-detect), AI tells per 1,000 words (the AI cliché checker's scan), five habits counted by ScriptGrain's voice-match counter, voice match against the fixed ScriptGrain brand profile (POST /v1/voice-match), and the content checks. Word count was recorded for both.
Tests: H1 to H3 use the paired mean difference with a 95% bootstrap interval (10,000 resamples of passages, seed 20261012). H1 and H2 hold if the interval excludes zero in the stated direction; H3 holds if the interval lies inside -0.05 to +0.05; H4 holds if at least 18 of 20 pairs lose or add no number and gain no invented first-person sentence.
Run: once, on 10 November 2026, the day before this page went live. No result changed any measure, threshold, seed or hypothesis. Analyses beyond H1 to H4 are labelled exploratory.
Variables measured
- Detector human score (0 to 1)
- AI tells per 1,000 words
- Contractions per 1,000 words
- Average sentence length
- Sentence-length variance
- Commas per word
- Em dashes per 1,000 words
- Voice match against a fixed profile (0 to 1)
- Numbers lost or added, invented first-person sentences, content words kept
- Word count
What each measure means
- Detector human score
- The score from ScriptGrain's own AI detector, 0 to 1, where 1 reads as human. It is a model's judgement of how the text reads, not a test of who wrote it.
- AI tells per 1,000 words
- Uses per 1,000 words of the stock phrases, balanced 'not X but Y' sentences and other patterns found by the free AI cliché checker.
- Stylometric habits
- Counted by code, not scored by a model: contractions per 1,000 words, average sentence length, sentence-length variance, commas per word and em dashes per 1,000 words.
- Voice match
- How closely a text matches one fixed writing profile, 0 to 1, from ScriptGrain's voice-match engine. The profile used is the ScriptGrain brand profile, fixed in advance because it is unrelated to every topic in the corpus. It asks whether the text sounds like that writer, not whether it sounds human.
- Content kept
- For each pair: numbers in the original missing from the rewrite, numbers in the rewrite absent from the original, first-person sentences in the rewrite with no first-person source in the original, and the share of the original's content words still present.
- Paired change and 95% interval
- Each passage is compared with its own rewrite; the change is the mean of the 20 differences (rewrite minus original). The 95% interval resamples the 20 passages with replacement 10,000 times (fixed seed 20261012).
Findings
- H1 (supported): the detector's human score rose (+0.18 (95% interval 0.14 to 0.23); 0.51 to 0.69): Mean of 20 paired differences on a 0 to 1 scale where 1 reads as human. The default target is 0.85; 0 of 20 rewrites reached it. The humaniser keeps the pass that scores highest on this same detector, so a rise is partly built into how it works. The 2 passages returned unchanged count as a change of zero.
- H2 (not supported): AI-tell density did not clearly fall (+0.24 (95% interval 0.00 to 0.71) per 1,000 words; 0.24 to 0.47): Stock phrases, 'not X but Y' balancing and the other patterns the free AI cliché checker looks for. 19 of the 20 originals had no tells at all, so there was little to remove; the score changed in 1 pair (P18: 0.0 to 4.7).
- H3 (supported): voice match stayed inside ±0.05 (−0.001 (95% interval −0.027 to 0.025); 0.74 to 0.74): The whole interval sits inside the pre-registered margin, so the rewrite did not measurably move the text toward or away from the fixed profile.
- H4 (supported): content survived (20 of 20 pairs clean (at least 18 needed)): 0 pairs lost a number, 0 added a number and 0 gained an invented first-person sentence. On average 66% of the original's content words were still present after the rewrite. That includes the 2 passages returned unchanged, which are clean trivially; 18 of the 18 passages that were rewritten are clean.
- Exploratory: how often the humaniser's own passes were thrown away (5 of 60 passes discarded by its integrity guard): The humaniser reports each pass and discards a pass that fails its own checks. 0 of 20 passages would have been skipped by a default run because they already scored at or above the 0.85 target.
What this study does not show
- That the humaniser beats, or loses to, any other humaniser. Only ScriptGrain's was tested; a comparison needs paid accounts with rivals.
- That the rewrite passes any detector other than ScriptGrain's own. Other detectors may disagree.
- That voice measurement, ScriptGrain's or anyone's, or a detector score, can tell whether a text was written by AI. This study scores generated passages and their rewrites; it says nothing about human writing.
- That the same passages would give the same numbers on another run. Model outputs are not deterministic; this is one run per passage.
- Anything about long documents. The passages were asked for at 150 to 200 words; the range actually generated is given under the method.
Pre-registered hypotheses and results
| Hypothesis | Result | Change, rewrite minus original (95% interval) |
|---|---|---|
| H1: the mean detector human score rises | Supported | +0.18 (95% interval 0.14 to 0.23) |
| H2: the mean AI-tell density falls | Not supported | +0.24 (95% interval 0.00 to 0.71) per 1,000 words |
| H3: voice match against the fixed profile does not move (interval inside ±0.05) | Supported | −0.001 (95% interval −0.027 to 0.025) |
| H4: in at least 18 of 20 pairs no number is lost or added and no first-person sentence is invented | Supported | 20 of 20 pairs |
Habits, before and after
Exploratory. Mean across the 20 passages, rewrite minus original, with a 95% interval from the same bootstrap.
| Habit | Before | After | Change (95% interval) |
|---|---|---|---|
| Words | 194.1 | 204.0 | +9.9 (95% interval 5.2 to 15.1) |
| Contractions per 1,000 words | 30.2 | 35.1 | +5.0 (95% interval −1.1 to 11.0) |
| Average sentence length (words) | 13.4 | 11.7 | −1.6 (95% interval −2.4 to −0.9) |
| Sentence-length variance | 45.3 | 46.8 | +1.5 (95% interval −6.4 to 9.6) |
| Commas per word | 0.831 | 0.671 | −0.160 (95% interval −0.254 to −0.070) |
| Em dashes per 1,000 words | 0.8 | 0.0 | −0.8 (95% interval −1.6 to 0.0) |
Claude passages against GPT passages
Exploratory. Ten passages each; the intervals are wide and are shown for completeness, not as separate tests.
| Written by | Measure | Before to after | Change (95% interval) |
|---|---|---|---|
| Claude | Detector human score | 0.55 to 0.72 | +0.18 (95% interval 0.11 to 0.23) |
| Claude | AI tells per 1,000 words | 0.5 to 0.5 | 0.0 (95% interval 0.0 to 0.0) |
| Claude | Voice match | 0.75 to 0.74 | −0.00 (95% interval −0.03 to 0.03) |
| GPT | Detector human score | 0.47 to 0.66 | +0.19 (95% interval 0.14 to 0.25) |
| GPT | AI tells per 1,000 words | 0.0 to 0.5 | +0.5 (95% interval 0.0 to 1.4) |
| GPT | Voice match | 0.73 to 0.73 | +0.00 (95% interval −0.04 to 0.04) |
Format by format
Exploratory. Four passages in each format (two Claude, two GPT), so these are descriptions of four pairs, not estimates.
| Format | Measure | Before to after | Change (95% interval) |
|---|---|---|---|
| blog intro | Detector human score | 0.69 to 0.74 | +0.04 (95% interval 0.00 to 0.09) |
| blog intro | Voice match | 0.80 to 0.78 | −0.02 (95% interval −0.09 to 0.05) |
| linkedin post | Detector human score | 0.55 to 0.71 | +0.16 (95% interval 0.12 to 0.19) |
| linkedin post | Voice match | 0.76 to 0.76 | −0.00 (95% interval −0.03 to 0.02) |
| launch email | Detector human score | 0.44 to 0.69 | +0.24 (95% interval 0.22 to 0.27) |
| launch email | Voice match | 0.71 to 0.71 | 0.00 (95% interval −0.07 to 0.07) |
| explainer | Detector human score | 0.35 to 0.62 | +0.27 (95% interval 0.20 to 0.35) |
| explainer | Voice match | 0.72 to 0.76 | +0.04 (95% interval −0.02 to 0.10) |
| about page | Detector human score | 0.49 to 0.70 | +0.21 (95% interval 0.18 to 0.25) |
| about page | Voice match | 0.72 to 0.69 | −0.03 (95% interval −0.07 to 0.01) |
Four pairs in full
Chosen by rule before the run: the largest, median and smallest detector gain, and the largest voice-match change in each direction (a pair can fill more than one role). The texts are shown with em and en dashes written out as [em dash] and [en dash], because this site does not print them. All 20 pairs are in the data file, in full.
Pair P04: largest detector gain
GPT passage, explainer about loft insulation. Detector human score 0.22 to 0.62; AI tells per 1,000 words 0.0 to 0.0; voice match 0.71 to 0.71; words 204 to 220; contractions per 1,000 words 0.0 to 18.2. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.
Original:
Loft insulation lowers heating bills by slowing the movement of heat from your home into the colder air outside. Warm air rises, making the roof an important route for heat loss. Without enough insulation, heat passes through the upstairs ceilings and escapes through the loft and roof. Your heating system then has to replace it to keep rooms comfortable.
Insulation materials, such as mineral wool, trap air in small pockets. This trapped air is a poor conductor of heat, so it creates a barrier that slows heat transfer. In a typical unheated loft, insulation is laid between and over the ceiling joists, helping retain warmth in the rooms below.
Because an insulated home loses heat more slowly, the heating needs to run less often or for shorter periods to maintain the same temperature. That reduces the amount of gas, electricity or other fuel you use, cutting your bills.
The savings depend on how much insulation you already have, the size of your home, your heating system and your usual thermostat setting. Installation matters too: gaps and compressed material reduce performance, while suitable ventilation helps prevent moisture problems. Loft insulation works quietly all year and can also help limit heat entering rooms during hot weather.
After the humaniser:
Loft insulation cuts your heating bills because it slows how fast heat leaves the house. Warm air rises, so the roof is where a lot of it escapes. Skimp on insulation up there and the heat just wanders through the upstairs ceilings, into the loft and out. Your heating then has to keep topping up the rooms.
Mineral wool and similar materials trap air in tiny pockets, and still air conducts heat badly. That's the whole trick. In an unheated loft the stuff goes between the ceiling joists and over them too, so the rooms below hold onto more warmth.
Lose heat slowly and the boiler doesn't need to run as often or for as long to keep the place at the same temperature. Less gas, less electricity, less of whatever you burn. Smaller bills.
How much you actually save is hard to pin down. It turns on what's already up there, the size of the house, the type of heating, and where you tend to leave the thermostat. Fitting counts as well. Gaps and squashed material do a poor job, and without decent ventilation you can get damp. Once it's in, the insulation works all year without anyone touching it, and in a heatwave it can also hold back some of the heat trying to get into the rooms.
Pair P19: median detector gain; largest voice-match rise
Claude passage, explainer about a bakery. Detector human score 0.42 to 0.62; AI tells per 1,000 words 0.0 to 0.0; voice match 0.73 to 0.84; words 235 to 244; contractions per 1,000 words 12.8 to 20.5. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.
Original:
Sourdough takes longer because it rises using wild yeast and bacteria rather than the fast-acting commercial yeast in ordinary bread.
Commercial yeast is a single, concentrated strain bred for speed. It produces gas quickly, so a standard loaf can be mixed, risen and baked in a few hours.
A sourdough starter is different. It's a living culture of wild yeast and lactic acid bacteria, kept alive on flour and water. The yeast population is much smaller and more varied, so it produces carbon dioxide far more slowly. The dough needs many hours to rise, and the first rise often runs eight to twelve hours or longer.
The bacteria also set the pace. They produce the acids that give sourdough its tang, and they do it slowly. Bakers often chill the dough overnight to develop flavour, which extends the process further. The acidity also slows the yeast, because the dough becomes a more demanding environment for it.
Those same long hours change the bread. Enzymes break down starches and proteins, which deepens the flavour and improves the crust. The acids help the loaf keep longer and may make some of the flour's compounds easier to digest.
A starter also has to be fed and kept active for days or weeks before it can raise a loaf at all.
So the extra time is the cost of the method, and it's also where sourdough gets its character.
After the humaniser:
Sourdough takes longer because it rises on wild yeast and bacteria instead of the fast commercial yeast in ordinary bread.
Commercial yeast is one concentrated strain, bred for speed. Gas comes fast. A standard loaf can be mixed, risen and baked in a few hours, start to finish.
A sourdough starter is a different animal. It's a living culture of wild yeast and lactic acid bacteria, kept alive on flour and water. Way less yeast in there, and a messier mix of types, so the carbon dioxide trickles out. The first rise often runs eight to twelve hours, sometimes longer than that.
The bacteria aren't rushing anyone either. They produce the acids that give sourdough its tang, and they take their time doing it. Plenty of bakers chill the dough overnight to pull out more flavour, which adds even more hours. Then there's the acidity, which slows the yeast too, because the more acid the dough gets, the worse a spot it is for yeast to work in.
Long hours change the bread itself. Enzymes chew through starches and proteins, so the flavour gets deeper and the crust comes out better. The acids help a loaf keep longer. They may also make some compounds in the flour easier to digest.
And before any of that, the starter needs feeding and tending for days or weeks. No loaf until it's active.
You pay for all this in time, and that's where the flavour comes from.
Pair P11: smallest detector gain
Claude passage, blog intro about running after forty. The humaniser returned this passage unchanged (its integrity guard discarded all 3 passes). Detector human score 0.82 to 0.82; AI tells per 1,000 words 0.0 to 0.0; voice match 0.86 to 0.86; words 201 to 201; contractions per 1,000 words 29.9 to 29.9. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.
Original:
The alarm went off at 5:40 a.m., and for a full minute I lay there negotiating with myself. I was forty-three. My knees had opinions about stairs. The last time I'd run anywhere on purpose was a school cross-country race, and I'd finished it walking, furious, and vowing never again.
So why was I lacing up a pair of cheap trainers in the dark?
Honestly, it wasn't a grand epiphany. There was no health scare, no milestone birthday crisis, no inspirational documentary. It was a small, quiet realisation that I'd been saying "I used to be able to" a lot lately. I used to be able to carry the shopping in one trip. I used to be able to keep up with my kids at the park. It had crept into my vocabulary like a slow leak.
My first run lasted ninety seconds. I know because I checked my watch, certain I'd done at least ten minutes. My lungs burned, my face went the colour of a boiled beetroot, and a man walking a spaniel passed me without apparent effort.
And yet, when I got home, I felt something I hadn't felt in years: the strange, bright satisfaction of having started.
After the humaniser:
The alarm went off at 5:40 a.m., and for a full minute I lay there negotiating with myself. I was forty-three. My knees had opinions about stairs. The last time I'd run anywhere on purpose was a school cross-country race, and I'd finished it walking, furious, and vowing never again.
So why was I lacing up a pair of cheap trainers in the dark?
Honestly, it wasn't a grand epiphany. There was no health scare, no milestone birthday crisis, no inspirational documentary. It was a small, quiet realisation that I'd been saying "I used to be able to" a lot lately. I used to be able to carry the shopping in one trip. I used to be able to keep up with my kids at the park. It had crept into my vocabulary like a slow leak.
My first run lasted ninety seconds. I know because I checked my watch, certain I'd done at least ten minutes. My lungs burned, my face went the colour of a boiled beetroot, and a man walking a spaniel passed me without apparent effort.
And yet, when I got home, I felt something I hadn't felt in years: the strange, bright satisfaction of having started.
Pair P06: largest voice-match fall
GPT passage, blog intro about a weekly budgeting app. Detector human score 0.62 to 0.72; AI tells per 1,000 words 0.0 to 0.0; voice match 0.79 to 0.67; words 206 to 213; contractions per 1,000 words 38.8 to 56.3. Numbers lost: 0; numbers added: 0; first-person sentences invented: 0.
Original:
Most budgeting apps seem to assume your money arrives once a month, neatly lined up with your bills. If you’re paid weekly, you know it rarely works that way.
Friday’s wages land. Rent is due Tuesday. Your phone bill comes out next week, and somewhere in between you need groceries, petrol, and enough room for a takeaway without wondering whether you’ve accidentally spent the electricity money.
A healthy-looking bank balance doesn’t always tell you what you can afford. Some of that money already has a job. The hard part is knowing how much to keep back from this week’s pay [em dash] and how much is yours to use.
That’s where a budgeting app built around weekly pay can help.
Instead of asking you to stretch a monthly plan across four or five paydays, it starts with your next pay packet. It helps you put a little aside for upcoming bills, cover everyday spending, and see what’s left until you’re paid again.
The aim is to make the decisions you already face a little easier: whether you can say yes to dinner out, how much to save this Friday, and what needs to stay untouched until rent day. Your budget should work on the same schedule as your wages.
After the humaniser:
Most budgeting apps assume your money shows up once a month, lined up neatly with your bills. If you're paid weekly, you already know it doesn't work like that.
Friday's wages land. Rent's due Tuesday. The phone bill comes out next week, and in the middle of all that you need groceries and petrol, and ideally a takeaway on the weekend without that nagging worry that you've spent the electricity money by accident.
A healthy bank balance can be misleading. Some of it already has a job. Figuring out how much to hold back from this week's pay is the hard part. Working out what's actually yours to use is harder.
A budgeting app built around weekly pay helps with that.
It won't ask you to stretch a monthly plan over four or five paydays. It starts from your next pay packet. You set a little aside for the bills coming up, cover everyday spending, and see what's left before you're paid again. That's about it.
Mostly it takes some of the weight off decisions you're making anyway, like whether dinner out is a yes, or how much goes into savings this Friday. Rent day is the one thing that stays fixed, so that money stays put while everything else shifts around it.
Limitations
- One humaniser, ours. We sell it, and no rival humanisers were tested (that needs paid accounts).
- One run per passage. Model outputs are not deterministic, so a re-run reproduces the method, not the exact texts.
- 20 short passages, asked for at 150 to 200 words (the generated originals ran from 146 to 235). Results on long documents may differ, and with 20 pairs the intervals are wide.
- The detector is ScriptGrain's own. Other detectors may agree or disagree, and a detector score is a model's judgement of how text reads, not a measurement of authorship.
- The passages were generated from bare prompts by two general-purpose models. They are not human writing, and nothing here says anything about human text.
- Voice match was measured against one profile, chosen because it is fixed and unrelated to every topic. A different profile could give a different result.
- The forced rewrite is not how the humaniser is used by default, though here it made no difference: a default run would have skipped 0 of these passages.
- The humaniser chooses between its passes with ScriptGrain's detector, the same detector that measured H1, so the rise in H1 shows what the humaniser optimises for. It does not show that the text reads as more human to people or to any other detector.
Competing interests
ScriptGrain sells this humaniser and sells voice matching, and the analyst builds both. H3 is a hypothesis that the product's positioning would like to be true: it was tested with an equivalence margin fixed in the pre-registration and is reported whichever way it fell. The hypotheses, measures and tests were committed to ScriptGrain's research repository (public on GitHub) before any passage was generated, and every result is reported whether it passed or failed.
Reproducing this
- Pre-registration and scripts: docs/research/sgr-027-preregistration.md and scripts/experiments/sgr-027/ in ScriptGrain's research repository (prompts.json holds the frozen prompts, generate.mjs wrote the passages, run.mjs humanises and measures, analyse.mjs tests the hypotheses, write-entry.mjs builds this page from the output).
- The data file holds every passage and its rewrite in full, with every measure for both, so any number on this page can be recomputed.
Data
- All 20 pairs: original and humanised text, every measure for both, humaniser details (JSON) (json)
- All 20 pairs: every measure, no text (CSV) (csv)
- Summary: hypotheses, intervals, exploratory results (JSON) (json)
Released under CC BY 4.0: free to reuse, including commercially, with credit to ScriptGrain and a link to this page.
Citations
- ScriptGrain (2026). Where did AI-isms come from? (SGR-007)
- ScriptGrain: free AI cliché checker, the scan behind AI tells per 1,000 words
How to cite
ScriptGrain (2026). What does a humaniser actually change? 20 AI-written passages, before and after (Study SGR-027, conducted 10 November 2026). Dataset licensed CC BY 4.0. https://scriptgrain.com/research/what-does-a-humaniser-actually-change
About the analyst
Jack Stovell has worked in finance and data for more than twelve years, building management reporting, forecasting and profitability models for advertising agencies and tech scale-ups, from SQL and Power BI reporting to board-level analysis. Since 2016 he has run Adapt Progress Evolve, an applied AI studio, where he builds and operates AI systems and data products: ScriptGrain's measurement of writing voice across 45 attributes, UK Spend, which brings 16.7 million rows of UK council spending into one queryable dataset, and more than thirty AI agents running in production. He designs ScriptGrain's studies and is accountable for every number in them.