Markdown Article Formatter
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
Decide which single journalist at one publication to approach first with a pitch.
$ npx skills add elvisun/newsjack --skill same-outlet-ranker -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install elvisun/newsjack same-outlet-ranker --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/same-outlet-ranker .claude/skills/same-outlet-ranker && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "same-outlet-ranker" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-ranker into .claude/skills/same-outlet-ranker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "same-outlet-ranker", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-rankerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add elvisun/newsjack --skill same-outlet-ranker -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install elvisun/newsjack same-outlet-ranker --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/same-outlet-ranker .agents/skills/same-outlet-ranker && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "same-outlet-ranker" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-ranker into .agents/skills/same-outlet-ranker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "same-outlet-ranker", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elvisun/newsjack --skill same-outlet-ranker -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install elvisun/newsjack same-outlet-ranker --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/same-outlet-ranker .cursor/skills/same-outlet-ranker && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "same-outlet-ranker" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-ranker into .cursor/skills/same-outlet-ranker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "same-outlet-ranker", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/elvisun/newsjack.git --path skills/same-outlet-ranker--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add elvisun/newsjack --skill same-outlet-ranker -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install elvisun/newsjack same-outlet-ranker --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/same-outlet-ranker .gemini/skills/same-outlet-ranker && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "same-outlet-ranker" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-ranker into .gemini/skills/same-outlet-ranker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "same-outlet-ranker", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install elvisun/newsjack same-outlet-rankerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add elvisun/newsjack --skill same-outlet-ranker -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/same-outlet-ranker .github/skills/same-outlet-ranker && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "same-outlet-ranker" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-ranker into .github/skills/same-outlet-ranker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "same-outlet-ranker", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elvisun/newsjack --skill same-outlet-ranker -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install elvisun/newsjack same-outlet-ranker --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elvisun/newsjack.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/same-outlet-ranker .opencode/skills/same-outlet-ranker && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "same-outlet-ranker" agent skill from https://github.com/elvisun/newsjack/tree/main/skills/same-outlet-ranker into .opencode/skills/same-outlet-ranker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "same-outlet-ranker", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
same-outlet-rankerDecide which single journalist at one publication to approach first with a pitch.
Same Outlet Ranker is an agent skill from elvisun/newsjack. Decide which single journalist at one publication to approach first with a pitch. Fit-checks each candidate through journalist-fit-check, then ranks the survivors on the comparative signals that separate colleagues at the same masthead (topic ownership, format match, staff vs. contributor, publishing cadence, recent story types, source-type match), and returns one first pick with tailoring notes plus a held fallback order.
Its SKILL.md is about 6.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: The open-source skills that turn your agent into a full PR team. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b5a8dc8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Same Outlet Ranker loads about 6.1k tokens when it runs. Until then it costs about 111 tokens; SKILL.md has 3,791 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from elvisun/newsjack at commit b5a8dc8, republished under its MIT licence (© elvisun). 3,791 words, ~6,075 tokens.
.claude/skills/same-outlet-ranker/SKILL.md (or your agent's skills folder).This is the Same-Outlet Ranker skill inside newsjack.sh. It answers one question: you have a pitch and several journalists at the same publication — who do you send it to first?
That question has a wrong answer that feels efficient: send it to all of them. Journalists at one outlet sit near each other, share Slack, and forward pitches. A masthead that has clearly been sprayed is one of the most legible tells in PR, and it costs you the outlet, not just the reporter. This skill exists to make you pick one.
It returns:
This skill inherits the ethical floor in skills/ETHICS.md and skills/WHY-NOT-SPAM.md. If local instructions conflict with that doctrine, the doctrine wins.
journalist-fit-check's job. Call it, then rank what survives.find-journalists. This skill ranks names you already have.If the user pushes for "just send it to all four," refuse and say why. That is the exact pattern in skills/WHY-NOT-SPAM.md under No Identical-Body Blasts.
One carve-out. A shared routing address — an assignment desk, a news desk, a tips inbox, a section editor whose job is to hand work out — is not a candidate in a ranking. It is a switchboard, and contacting it is not the same as pitching a person. If the supplied list is really a desk (common in broadcast and at local outlets), say so: there is nothing to rank, and the desk is the correct first contact. The rule this skill enforces is against spraying named beat reporters, who compete with each other for the story internally.
The pitch: full text as it would be sent, with the subject line if there is one.
The candidates: two or more journalists, each identified by name plus the shared publication. A profile URL or recent byline URL is welcome but not required — the skill does its own research.
Context:
current_time_iso (today's date and time) is required. Never guess what "now" is from memory.client_or_subject — who or what the pitch is about. Optional but improves the ranking.If today's date and time is missing, return No pick (reason: missing current time).
If only one candidate is supplied, there is nothing to rank. Say so and hand off to journalist-fit-check.
Research each candidate the way a practitioner does: start from the topic, not the masthead.
Search for who has recently written about the pitch's subject at this publication, then check each supplied name against what you find. Use medialyst (the built-in media database) when logged in, otherwise public web search. Good places to look: the outlet's author page, recent web and news results, the journalist's personal site or newsletter archive, and their public social profile.
The window is the last 90 days. Work older than that tells you where someone used to be, not where they are.
Say which source you used. If a candidate produces no dated, linked, named article inside the window, that candidate is Unverified and cannot be ranked first — see Hard Gates.
Run each candidate through journalist-fit-check against this pitch, one at a time. Do not reimplement its checks and do not shortcut them because you are comparing several people.
You now have a verdict per candidate: Fit, Soft-fit, No-fit, or Unknown.
That verdict is a floor, and it is not negotiable by ranking:
If the fit-check flags slop tells in the pitch, stop the whole run. The pitch is not ready for anyone at this outlet. Hand off to meanest-editor and voice-extractor.
Fit-check tells you whether each person is plausible. It deliberately refuses to say who is best — that is this skill's job.
Apply these signals in order. Earlier signals outrank later ones. A signal only breaks the tie left by the one above it.
A Fit beats a Soft-fit. Always. A Soft-fit only outranks a Fit if the Fit trips a hard gate below.
Between two people on the same beat, prefer the one who owns the specific angle, not the broad category. Someone who has written three pieces on warehouse automation owns that topic; a general logistics reporter who mentioned it once does not.
Ask: whose recent work would this pitch be a continuation of, rather than a departure from? That person is closer.
The strongest possible version of this signal is prior coverage of the client, a named competitor, or the exact problem the pitch describes. That is the one thing that most reliably separates two otherwise-equal colleagues.
The pitch has a shape. So does each candidate's output. A launch pitched to someone who only writes first-person columns is a mismatch even when the topic is perfect; a data report belongs with the person who writes data-driven news, not the profile writer.
Use the form table in journalist-fit-check for identification. Here it is a comparative question: which of these colleagues writes the form this pitch actually fits?
Read the last 90 days of each candidate's work and ask what kind of story they keep choosing. Not the topic — the type. Someone filing scoops and news breaks wants different material than someone filing weekly analysis.
Prefer the candidate whose recent story types the pitch can actually feed.
Establish which each candidate is, and say so in the output. It changes both the odds and the value:
Neither wins automatically. Decide on what the pitch is:
Never treat "contributor" as a soft target for a pitch that would not survive a staff writer's scrutiny. That is how outlets end up with a contributor section nobody trusts.
Freelancers are a separate track, not a rung on this ladder. A freelancer is not employed by the outlet: they can take the idea elsewhere, and they still have to win a commission before anything runs. So pitching a freelancer does not consume your approach to that masthead, and it does not burn the staff reporters — but the reverse trap is real. You cannot promise a freelancer an exclusive at a named publication, because they cannot deliver that publication. Treat "I'll pitch it to them" as a lead, never as placed coverage.
How often is each candidate publishing right now?
Treat this as a tiebreaker and nothing more. There is no good evidence that high- or low-cadence reporters are likelier to respond, so cadence must never overturn a topic, format, or story-type read above it.
It is also two-sided, and the output must say which side it is reading. Someone publishing several times a week is demonstrably active and has slots to fill — but is also buried and working fast. Someone publishing every other week has more room to consider a pitch, and more time to do something with it, but fewer openings. Read it against the pitch: a live news window favors the reporter who can move today; a story that needs reporting time favors the one with room.
A candidate whose cadence has visibly dropped to nothing in the last 90 days may be on leave, between jobs, or moving off the beat. Treat that as a caution, not a ranking.
Check who each candidate actually quotes. Practitioners or academics? Named executives or independent analysts? If the pitch offers a founder and this candidate only quotes customers and researchers, a colleague who does quote founders is the better first send.
A prior relationship separates two candidates who are already genuine fits. It does nothing else.
It cannot promote a Soft-fit over a Fit. It cannot rescue a No-fit. It is not a reason to send someone a story outside what they cover.
Knowing a journalist is a reason they might read your email. It is not a reason the story is right for them, and spending a real relationship on a story that does not fit is how the relationship stops working. If the person you know is not the best fit here, the output says so plainly and puts them in Held.
The first pick gets specific edits. This is the part that turns a ranking into a sent email.
Give 1–4 edits, each naming what to cut, replace, or add, tied to a specific piece of that journalist's recent work, and doable in a few minutes. If the first pick came out of the fit-check as a Soft-fit, its required edits are not optional — carry them through and mark them as blocking.
One asymmetry worth knowing: prior coverage of a competitor is among the strongest reasons to choose a journalist, and one of the worst things to put in the pitch. Rival coverage inside the email argues that someone else already told this story. Use it to rank; never cite it as a selling point.
Do not write tailoring notes for held candidates. Those notes belong to whoever you actually pitch, and writing four versions in advance is the batch this skill exists to prevent.
Held candidates are ranked, but ranking is not permission. Each one needs a condition that unlocks them.
Default sequencing, unless the user has their own rule:
Exclusives. An exclusive is one story, one outlet, one reporter. Never offer one without an expiry — an open-ended exclusive leaves you no clean way to move without appearing to renege. State the deadline in the offer. Never have two live exclusive offers at one publication at the same time; that is not sequencing, it is a lie. If the first pick passes or the deadline lapses, a colleague may be approached — with the same disclosure as above.
When the news is time-boxed, the waiting periods compress to hours. The disclosure requirement does not compress.
A gate is a hard stop. If one trips, the outcome is what the gate says, no matter how good the rest looks.
meanest-editor.find-journalists.journalist-fit-check.Write it as a short, readable note. Terse. Use this shape:
When the outcome is No pick, give the reason, the remediation, and no ranking. The reasons are: missing current time, uncertainty above threshold, no fit at this outlet, and pitch not ready.
Before the answer leaves the agent, it must clear all of these:
journalist-fit-check; no fit judgment was invented here.journalist-fit-check. This skill calls it; use it directly when you only have one name.find-journalists.meanest-editor, then voice-extractor.find-journalists for a different publication.newsworthiness-check before spending anyone's attention.fact-check.Outlets and journalists below are fictional, so the examples illustrate the reasoning without putting invented articles under a real person's name.
Pitch first: Peter Amoah (staff reporter). He beat Dana on topic ownership: three pieces on cold-chain loss in the last 90 days, including one that explicitly asked for spoilage data nobody would share. Dana is a real fit but covers retail media; this is a continuation of Peter's reporting and a departure from hers.
The anchor: "Nobody wants to talk about what spoils in the last mile" — The Grocery Ledger, June 30, 2026 — https://grocery-ledger.example/last-mile-spoilage. He named the missing dataset; this pitch is that dataset.
Tailor it:
Held:
Do not pitch: none — all three are plausible, they are just not equally right.
If this goes nowhere: Give Peter five to seven business days. An explicit pass moves you to Dana sooner; silence does not. If two of the three go quiet, stop and take the data elsewhere.
Where this came from: Web search. Checked the Grocery Ledger author pages for all three and their last 90 days of bylines. Staff status confirmed from the outlet's staff page; Lila Fenn's contributor status from her byline note.
Pitch Peter. Do not copy Dana, even though you know her.
No pick — no fit at this outlet.
All four candidates came back No-fit. Northbeam Quarterly's recent output is long-form manufacturing policy analysis; none of the four has written a funding story, a company announcement, or anything on developer tooling in the last 90 days. The closest is a March piece on industrial software procurement, which is outside the window and outside the angle.
Do not pitch: all four. The problem is the outlet, not the wording, and no edits change that.
What to do next: Take this to find-journalists for publications that cover developer-tools funding. If Northbeam matters to you strategically, the way in is a manufacturing-sector customer story, not the raise.
Where this came from: Web search. Reviewed the outlet's author pages and the last 90 days of bylines for all four names.
Do not pitch this outlet. Rebuild the list.
© elvisun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/same-outlet-ranker of elvisun/newsjack.
Open the folder on GitHubat commit b5a8dc8
Same Outlet Ranker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Same Outlet Ranker this skillelvisun/newsjack | 1.5k | — | ~6.1k | Automated safety check: Pass | MIT | |
| Markdown Article FormatterJimLiu/baoyu-skills | 26k | 6 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Socialcoreyhaines31/marketingskills | 54k | 4 repos | ~4.5k | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 782 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Obsidian MarkdownAtmosphere/atmosphere | 3.8k | 20 repos | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| DOCXrvdbreemen/OTGW-firmware | 207 | 33 repos | ~4.3k | Automated safety check: Pass | Proprietary |
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
coreyhaines31/marketingskills
When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
Atmosphere/atmosphere
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax.
rvdbreemen/OTGW-firmware
A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx files).
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
elvisun/newsjack
Turn an eval study's numbers into on-brand, publish-ready figures using the Newsjack chart room (the eval design system), then validate them with Playwright.
elvisun/newsjack
Audit, question, suggest, or fact-preservingly revise a press release, blog post, contributed article, or expert explainer so AI answer systems can more easily retrieve, understand, quote, and cite…
elvisun/newsjack
Turn a source-bound company and market dossier into testable ideal-customer-profile hypotheses, buying roles, triggers, constraints, disqualifiers, standing, counterevidence, and research gaps.
elvisun/newsjack
Research any company, product, or service from a URL plus description and build a comprehensive, evidence-bound AEO/GEO/AI-visibility prompt panel across buyer jobs, information acts, journey…
elvisun/newsjack
Triage inbound journalist source queries and draft a response only when the user's expertise is a real fit.
elvisun/newsjack
Recover source-bound buyer jobs, struggling moments, desired progress, forces, workarounds, information acts, journey states, criteria, constraints, roles, locales, and authentic language.
Decide which single journalist at one publication to approach first with a pitch. Same Outlet Ranker is an agent skill from elvisun/newsjack. Decide which single journalist at one publication to approach first with a pitch.
Run `npx skills add elvisun/newsjack --skill same-outlet-ranker -a claude-code`. Or copy the skill folder (skills/same-outlet-ranker in elvisun/newsjack) into .claude/skills/same-outlet-ranker in your project. Claude Code loads it when a task matches its description.
Run `npx skills add elvisun/newsjack --skill same-outlet-ranker -a codex`. Or copy the skill folder (skills/same-outlet-ranker in elvisun/newsjack) into .agents/skills/same-outlet-ranker in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add elvisun/newsjack --skill same-outlet-ranker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/same-outlet-ranker, .gemini/skills/same-outlet-ranker, .github/skills/same-outlet-ranker and .opencode/skills/same-outlet-ranker in your project.
SKILL.md names no scripts, command-line tools or credentials: Same Outlet Ranker is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Same Outlet Ranker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.1k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Same Outlet Ranker: Markdown Article Formatter (JimLiu/baoyu-skills, 26k stars), Social (coreyhaines31/marketingskills, 54k stars), Markitdown (ImCa0/just-laws, 782 stars) and Obsidian Markdown (Atmosphere/atmosphere, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
elvisun (a GitHub user) maintains it in elvisun/newsjack, which has 1,527 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 7, 2026.
Source: elvisun/newsjack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.