Back to blog

Open Source

From User to Contributor to Maintainer: The Open Source Career Path

Maps the natural progression from grateful user to active contributor to trusted maintainer, with milestones, mindset shifts, and skills developed at each stage.

  • Open Source
  • Maintainers
  • Contributors
  • Career Growth
  • Governance

SEO Metadata

SEO Title Options

  1. From User to Contributor to Maintainer: The Open Source
  2. From User to Contributor to Maintainer: Practical 2026
  3. Open Source Playbook: From User to Contributor to

Meta Description Options

  1. Learn From User to Contributor to Maintainer: The Open Source Career Path with a practical Open Source framework, expert mistakes, implementation steps.
  2. Maps the natural progression from grateful user to active contributor to trusted maintainer, with milestones, mindset shifts, and skills developed at each.

URL Slug

from-user-to-contributor-to-maintainer-the-open-source-career-path

Focus Keyword

From User to Contributor to Maintainer: The Open Source Career Path

Additional LSI Keywords

  • Open Source
  • Maintainers
  • Contributors
  • Career Growth
  • Governance
  • From User to Contributor to Maintainer: The Open Source Career Path
  • production checklist
  • implementation guide
  • best practices
  • architecture decisions
  • testing strategy
  • performance impact

Table of Contents

Article overview

From User to Contributor to Maintainer: The Open Source Career Path is the kind of topic that looks simple until it reaches production. Teams usually discover the real cost late: unclear boundaries, weak defaults, hidden maintenance work, and decisions that seemed harmless when the codebase was small.

The problem gets worse when the article, tutorial, or implementation guide only explains the happy path. This guide closes that gap with a practical framework, a comparison table, common mistakes, and a deep technical section you can use while planning real work.

Keep reading for the non-obvious part: the safest implementation is rarely the most impressive-looking one. It is the one your team can debug, test, document, and evolve without turning every future change into archaeology.

Key Takeaways

  • From User to Contributor to Maintainer: The Open Source Career Path should be evaluated as a production decision, not only as a syntax or tooling choice.
  • The best implementation keeps responsibilities visible, with clear ownership, tests, documentation, and rollback paths.
  • Search visibility improves when practical depth, structured answers, and expert examples live on the same page.

[IMAGE: A mobile-first technical article layout showing the main concept, decision table, implementation checklist, and FAQ blocks. Alt: From User to Contributor to Maintainer: The Open Source Career Path expert guide for Open Source]

What From User to Contributor to Maintainer: The Open Source Career Path means

From User to Contributor to Maintainer: The Open Source Career Path means applying open source knowledge to a concrete engineering decision, then turning that decision into reliable code, documentation, and operational behavior. In practice, it combines the topic's core concepts with trade-off analysis, implementation boundaries, testing strategy, and maintenance discipline.

This is the definition worth optimizing for featured snippets because it avoids hype. It tells the reader what the topic does and what a professional implementation must include.

Why it matters now

The technical web is more crowded than it was a few years ago. Thin tutorials can still get indexed, but they rarely earn trust from senior developers, buyers, AI answer systems, or teams that need production guidance.

For open source topics, the strongest content now has three layers:

  • a clear answer for fast scanning
  • a practical framework for implementation
  • expert context that explains what breaks later

That same structure helps search engines understand the page. It also helps readers decide whether the advice fits their project.

Implementation framework

Use this framework before adopting the approach described in this article.

  1. Define the user problem and the production risk.
  2. Identify the smallest reliable implementation boundary.
  3. Keep configuration, secrets, and environment-specific behavior outside the article's core logic.
  4. Add tests for the behavior that would hurt if it regressed.
  5. Document the trade-off, not only the final code.
  6. Measure the result with logs, metrics, or user-facing outcomes.
  7. Revisit the decision after real usage exposes edge cases.

The sequence is deliberately conservative. It keeps the work grounded in outcomes instead of novelty.

[IMAGE: A seven-step implementation framework with discovery, boundary design, configuration, tests, documentation, measurement, and iteration. Alt: From User to Contributor to Maintainer: The Open Source Career Path implementation framework]

Practical comparison

Decision areaStrong approachWeak approachWhy it matters
ScopeSolve one clear problemMix unrelated concernsFocus improves testing and search intent
ArchitecturePut logic in explicit classes or documented boundariesHide behavior in templates or incidental callbacksFuture changes stay easier to review
Data flowPass prepared data into the view or endpointQuery or compute in presentation codeReduces regressions and performance surprises
TestingCover the risky behavior directlyTest only the happy pathCatches production failures earlier
DocumentationExplain trade-offs and limitsRepeat generic definitionsBuilds E-E-A-T and reader trust
OperationsTrack logs, metrics, and rollback stepsShip without measurementMakes the decision reversible

This table is intentionally practical. It gives a reviewer something to check before the implementation becomes expensive to change.

Expert workflow

Expert tip: "Treat From User to Contributor to Maintainer: The Open Source Career Path as a system boundary. If the next developer cannot find where the decision lives, how it is tested, and when it should be avoided, the implementation is not finished."

A useful workflow is simple:

  • Start with the smallest working example.
  • Add the constraints that exist in your real project.
  • Remove anything that only demonstrates cleverness.
  • Write down the failure modes.
  • Add links to related decisions so future readers can navigate the topic cluster.

That last point matters for both humans and search systems. A single article can answer a question; a cluster proves authority.

Common mistakes

Mistake 1: Copying a pattern without its context

A pattern that works in a small demo can fail in a real application. The missing context is usually data volume, team experience, deployment process, security requirements, or observability.

Before copying the pattern, ask what assumption made it safe in the original example.

Mistake 2: Putting business logic in the wrong layer

This is the fastest way to make future debugging expensive. In Laravel, PHP, and server-rendered websites, presentation should receive prepared data, not discover rules on its own.

Keep decision logic in models, actions, services, policies, requests, jobs, or documented helpers where it can be tested directly.

Mistake 3: Optimizing for novelty instead of maintainability

Newer tools and language features can be valuable. They can also hide simple behavior behind unfamiliar syntax.

Use the option that makes the next production incident easier to understand.

Mistake 4: Publishing without a measurement plan

If the article describes a performance, SEO, security, or architecture improvement, define how success will be checked. Logs, tests, crawl diagnostics, analytics, and user behavior are all stronger than assumptions.

[IMAGE: A common-mistakes board with context loss, wrong layer, novelty bias, and missing measurement highlighted. Alt: From User to Contributor to Maintainer: The Open Source Career Path common mistakes]

Image placeholders

  • [IMAGE: A concept diagram for From User to Contributor to Maintainer: The Open Source Career Path with input, decision boundary, implementation, tests, and production feedback. Alt: From User to Contributor to Maintainer: The Open Source Career Path concept diagram]
  • [IMAGE: A mobile screenshot-style checklist for From User to Contributor to Maintainer: The Open Source Career Path. Alt: From User to Contributor to Maintainer: The Open Source Career Path mobile checklist]
  • [IMAGE: A comparison table visualization for strong versus weak implementation choices. Alt: From User to Contributor to Maintainer: The Open Source Career Path comparison table]

Video placeholder

[VIDEO: Insert a 5-8 minute YouTube walkthrough that demonstrates the main decision, the implementation boundary, the test strategy, and the production caveats for From User to Contributor to Maintainer: The Open Source Career Path.]

Internal linking opportunities

Original Technical Deep Dive

Most open source careers do not start with a grand plan.

They start with use.

You install a package.

You copy an example.

You hit a bug.

You read an issue thread.

You notice the documentation is missing one sentence you wish existed yesterday.

Then, if you are curious enough, you cross a line:

from consuming the project
to improving the project

That line is smaller than people think.

The path from user to contributor to maintainer is not a promotion ladder in the corporate sense. Nobody hands you a job title after three pull requests. It is a gradual accumulation of trust, context, judgment, and responsibility.

The natural progression looks like this:

user
careful reporter
first-time contributor
repeat contributor
reviewer or triager
trusted project member
maintainer
steward

Not everyone needs to walk the whole path.

But understanding the path helps you know where you are, what skill comes next, and why maintainers care about things that look invisible from the outside.

The Short Version

Open source contribution grows through trust.

StageMain questionSkill being built
UserDoes this solve my problem?Evaluation and practical usage
ReporterCan I describe the problem clearly?Reproduction, context, and empathy
ContributorCan I make a focused improvement?Small changes, tests, and review response
Repeat contributorCan I be useful without supervision?Project conventions and reliability
ReviewerCan I protect quality for others?Judgment, feedback, and risk spotting
MaintainerCan I protect the project over time?Stewardship, prioritization, and governance

The mindset shifts are the real career path:

from "this helps me"
to "this helps other users"
to "this fits the project"
to "this will be maintainable"
to "this protects the community"

A maintainer is not just someone with merge permissions.

A maintainer is someone trusted to act on behalf of the project when nobody is watching.

Stage 1: User

Every contributor starts as a user.

That matters more than people admit.

A good user understands the project from the outside:

installation friction
documentation gaps
confusing defaults
unclear error messages
missing examples
version compatibility surprises
real-world use cases

Maintainers often lose sight of some of this because they know too much.

Users bring fresh signal.

At this stage, your best contribution may be paying attention:

What confused me?
What did I search for?
Which command failed?
Which example was outdated?
What assumption did the docs make?
What error message sent me to the wrong place?

Do not underestimate this.

Many great contributions begin as a user saying:

I tried the documented path and found the exact place it breaks.

That is already more useful than a vague complaint.

User Milestones

You are becoming a useful open source user when you can:

install the project from docs
explain what the project does
identify the main repository
find the issue tracker
search existing issues before opening a new one
read the release notes before upgrading
distinguish project bugs from misuse
describe the version and environment you are using

These sound basic.

They are not.

A user who can report clearly saves maintainers hours.

Stage 2: Careful Reporter

[IMAGE: Supporting visual 1 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 1]

[IMAGE: Supporting visual 1 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 1]

The next step is not necessarily code.

It is reporting well.

A weak issue says:

It does not work.

A strong issue says:

I expected X.
I got Y.
Here is the smallest reproduction.
Here is my version.
Here is the command I ran.
Here is the output.
Here is what I already checked.

Careful reporting is a career skill.

It trains you to separate:

symptom from cause
fact from assumption
reproduction from speculation
project bug from environment issue
urgency from importance

That is real engineering work.

In many projects, a high-quality bug report is more valuable than a rushed patch.

The maintainer can decide the fix.

Your job is to make the problem undeniable.

Reporter Milestones

You are becoming a useful reporter when you can:

reduce a bug to a small reproduction
include exact versions
include logs without dumping unrelated noise
link related issues
avoid duplicate reports
answer maintainer questions quickly
confirm whether a proposed fix works
close the loop when the problem was your configuration

The mindset shift:

from "someone should fix this"
to "I can make this easier to fix"

That shift is the beginning of contribution.

Stage 3: First-Time Contributor

The first pull request is not about proving genius.

It is about proving you can participate.

Good first contributions are usually small:

fix a broken link
improve a setup step
add a missing test
clarify an error message
document a config option
fix a small bug with a reproduction
update an example that no longer runs

The point is not the size.

The point is the workflow:

read CONTRIBUTING.md
fork the repo
create a topic branch
make a focused change
run checks
write a clear pull request description
respond to review
revise the same pull request
wait without spamming maintainers

GitHub's contributor guidance emphasizes reading project guidelines, finding appropriately scoped work, opening pull requests, and working with maintainers through feedback.

That is the real curriculum.

The code change is only one part.

First Contribution Milestones

You have crossed from user to contributor when you can:

open a focused pull request
explain why the change matters
show how you tested it
keep unrelated cleanup out
respond professionally to review
make requested changes in the same PR
accept that not every useful idea belongs upstream

The mindset shift:

from "here is my fix"
to "here is a change that fits your project"

That distinction is everything.

Stage 4: Repeat Contributor

The second, third, and fourth contributions matter more than the first.

One merged PR proves you can get through the process.

Repeated contributions prove you are reliable.

Reliability looks like:

you choose useful work
you follow project conventions
you keep diffs small
you add tests where appropriate
you do not disappear after feedback
you understand when to ask before coding
you help close issues after fixes land
you know which changes need design discussion

At this stage, maintainers start recognizing your name.

Not because you are loud.

Because your work costs less to review.

That is how trust accumulates.

Repeat Contributor Milestones

You are becoming a repeat contributor when you can:

predict what maintainers will ask for
spot duplicate issues
link changes to existing project direction
improve tests around your own patches
avoid reviving settled debates
explain trade-offs without defensiveness
leave useful comments on other issues
help new users without overstepping

The mindset shift:

from "I want to contribute"
to "I know where contribution is useful"

That is a big step.

Stage 5: Reviewer Or Triager

Many people think the next step after writing code is writing more code.

Often, the next step is review.

Review and triage are where you stop acting only as an author and start protecting the shared work.

Triage includes:

confirming bugs
asking for reproduction steps
labeling issues
closing duplicates
identifying stale reports
linking related discussions
separating support requests from project bugs

Review includes:

checking whether the change solves the issue
checking tests
spotting backwards compatibility risks
catching documentation gaps
asking for smaller scope
explaining project conventions
noticing security and performance concerns

This is where judgment becomes visible.

You are no longer only saying:

I made a thing.

[IMAGE: Supporting visual 2 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 2]

You are saying:

I can help decide whether this thing is good for the project.

That is a different responsibility.

Reviewer Milestones

You are growing into review responsibility when you can:

give feedback that is specific and actionable
separate blockers from suggestions
avoid personal criticism
ask clarifying questions before rejecting
notice missing tests
recognize changes outside your expertise
call for another reviewer when needed
protect project standards without gatekeeping

The mindset shift:

from "can I get my change merged?"
to "should this change be merged?"

That is the maintainer mindset beginning to form.

Stage 6: Trusted Project Member

Many mature projects have formal roles between contributor and maintainer.

Kubernetes SIG Docs, for example, documents a ladder from anyone, to member, to reviewer, to approver. Each level adds responsibility: triage, non-binding review, binding review, and merge authority.

[IMAGE: Supporting visual 2 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 2]

Rust compiler team membership similarly distinguishes regular contributors, team members, and maintainers, and explicitly notes that membership can come from regular participation in many forms, not only writing pull requests.

The exact titles differ:

member
reviewer
approver
committer
project member
team member
maintainer
core contributor

The pattern is similar:

consistent contribution
project knowledge
trust from existing maintainers
clear communication
responsibility beyond personal patches

You become trusted when your judgment starts saving maintainers time.

Trusted Member Milestones

You are becoming a trusted project member when you can:

answer common contributor questions
review simple changes accurately
triage issues without creating confusion
explain project decisions with context
know when not to speak for maintainers
bring the right person into a discussion
spot when a proposal needs design review
stay calm in public disagreement

The mindset shift:

from "I participate here"
to "people rely on my participation here"

That shift should feel heavier.

It is heavier.

Stage 7: Maintainer

Maintainer is not just a permission level.

Open Source Guides describes a maintainer as someone who feels responsibility over the direction of the project and is committed to improving it.

That is the heart of the role.

A maintainer does work that many users never see:

review pull requests
triage bugs
cut releases
write release notes
handle security reports
resolve design disputes
protect backwards compatibility
maintain CI
respond to users
document project direction
say no to good ideas that do not fit
invite new contributors
remove inactive permissions when needed
watch for burnout

Maintainers turn technical skill into stewardship.

The hard part is not merging code.

The hard part is protecting the project from entropy.

Maintainer Milestones

You are acting as a maintainer when you can:

make decisions that are good for users you will never meet
prioritize boring maintenance over exciting novelty
reject changes clearly and respectfully
delegate without disappearing
prepare releases users can trust
respond to security issues privately and responsibly
keep project direction coherent
notice contributor burnout
notice your own burnout
document decisions so the project is not trapped in your head

The mindset shift:

from "I help this project"
to "I am accountable for part of this project"

That accountability is the real promotion.

The Skills You Build Along The Way

Open source contribution builds a set of skills that are hard to simulate in private toy projects.

Technical skills:

reading unfamiliar code
debugging real bugs
writing regression tests
working with CI
understanding release compatibility
reviewing diffs
evaluating architecture trade-offs
handling dependency and security updates

Communication skills:

writing clear issues
explaining decisions publicly
giving review feedback
disagreeing without drama
asking maintainers focused questions
summarizing long threads
writing migration notes
documenting behavior for future users

Leadership skills:

triage
prioritization
scope control
delegation
conflict resolution
community norms
governance
mentoring
succession planning

This is why open source can become a career accelerator.

Not because it adds green squares to a profile.

Because it proves you can operate in a real technical community.

What Changes At Each Stage

The same behavior means different things as you move along the path.

[IMAGE: Supporting visual 3 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 3]

BehaviorAs contributorAs maintainer
Opening a PRYou propose workYou create precedent
Commenting on an issueYou offer helpPeople may treat it as project direction
Saying noYou express preferenceYou close a path for others
Merging a changeYou finish your taskYou accept future maintenance cost
Ignoring a threadYou miss a notificationYou may block a contributor
Taking a breakYou pause participationThe project may need coverage

This is why maintainership changes your writing.

You become more careful because your comments carry more weight.

That is good.

Authority should make people more precise, not more casual.

Not Everyone Should Become A Maintainer

This matters.

Maintainer is not the only valid destination.

Some people are happiest as:

occasional contributors
documentation specialists
triagers
release helpers
security reviewers
ecosystem educators
plugin maintainers
community organizers
corporate sponsors
power users who write excellent bug reports

[IMAGE: Supporting visual 3 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 3]

Those roles matter.

Open source fails when every form of contribution is treated as a stepping stone to commit access.

Maintainer work can be rewarding, but it can also be heavy:

constant notifications
angry users
ambiguous decisions
security pressure
unpaid support expectations
release deadlines
social conflict
responsibility without authority over people's time

Do not chase maintainer status only for prestige.

Chase it only if you want the responsibility.

How To Move From Contributor To Maintainer

If you do want to move toward maintainership, do not ask for power first.

Take responsibility first.

Practical path:

Contribute regularly in one area.
Review small pull requests in that area.
Answer user questions when you know the answer.
Triage issues with care.
Write documentation for decisions maintainers repeat often.
Help keep CI green.
Propose small process improvements.
Ask maintainers where help is most needed.
Be reliable for months, not days.
Accept feedback without turning every point into a debate.

Then, when the project has formal roles, follow the documented path.

If it does not, ask carefully:

I have been helping with parser issues and reviewing small PRs in that
area. Is there a way I can take more responsibility there, such as triage
permissions or being listed as a reviewer?

That is better than:

Can I be a maintainer?

The first asks where responsibility is useful.

The second asks for status.

How Maintainers Should Grow New Maintainers

This path is not only the contributor's job.

Existing maintainers should make trust visible.

Healthy projects create a contributor ladder:

what contributors can do
what reviewers can do
what maintainers can do
how people move between roles
who sponsors them
what expectations come with access
how inactive maintainers step back
how conflicts are handled

This prevents maintainership from becoming a mystery controlled by private relationships.

It also helps avoid the common failure mode:

one maintainer does everything
contributors wait for approval
reviews pile up
maintainer burns out
project slows down
users complain
new contributors leave

A project that wants longevity must train successors.

That means:

delegate small decisions
invite review
document release process
share context
make room for newer voices
give credit
notice consistent contributors
promote responsibility before crisis

Maintainers should not wait until they are exhausted to share ownership.

By then, delegation feels like another task.

Warning Signs On The Path

[IMAGE: Supporting visual 4 for From User to Contributor to Maintainer: The Open Source Career Path, showing From User to Contributor to Maintainer: The Open Source Career Path decisions, examples, and Open Source, Maintainers, Contributors. Alt: From User to Contributor to Maintainer: The Open Source Career Path from-user-to-contributor-to-maintainer-the-open-source-career-path visual 4]

As a contributor, watch for:

no contribution guide
hostile review culture
maintainers never respond
unclear license
no releases
security reports handled in public chaos
one person blocking every decision
private decisions contradicting public discussion

As a maintainer, watch for:

you are the only person who can release
you are afraid to take a vacation
you resent every notification
you reject help because explaining takes time
you merge too quickly just to clear the queue
you stop writing down decisions
you treat users as enemies
you avoid governance because it feels bureaucratic

These are not moral failures.

They are system warnings.

Open source sustainability depends on noticing them early.

A Practical Roadmap

If you are starting as a user:

Use the project seriously.
Read README, CONTRIBUTING, LICENSE, SECURITY, and release notes.
Report one issue with a clean reproduction.
Fix one small documentation gap.
Make one focused pull request.
Respond well to review.
Contribute again in the same area.
Start answering questions you know.
Review small changes when allowed.
Ask where maintainers need help.
Take on a repeat responsibility.
Follow the project's formal role process if one exists.

If you are already a contributor:

Stop chasing random issues.
Pick a subsystem, documentation area, or workflow.
Become reliable there.
Learn its history.
Write down what you learn.
Review related changes.
Help newcomers in that area.
Ask for scoped responsibility.

If you are already a maintainer:

Document your release process.
Identify contributors who already act responsibly.
Give them small, reversible permissions.
Create reviewer or triage roles.
Publish governance expectations.
Rotate maintenance work.
Make stepping back acceptable.

That is how a project becomes more than one person's endurance test.

The Real Career Path

The open source career path is not:

get stars
get followers
get commit access
become famous

The real path is:

understand a project
make it easier to use
make it easier to fix
make it easier to review
make it easier to maintain
make it easier for the next person to join

That is a career because those skills transfer everywhere.

A developer who can move from user to contributor to maintainer has learned how software survives beyond the first implementation.

They have learned that code is only part of the work.

The rest is trust.

FAQ

What is From User to Contributor to Maintainer: The Open Source Career Path?

From User to Contributor to Maintainer: The Open Source Career Path is a practical open source topic that should be evaluated through implementation scope, production risk, testing, documentation, and long-term maintainability.

When should a team use From User to Contributor to Maintainer: The Open Source Career Path?

Use From User to Contributor to Maintainer: The Open Source Career Path when it solves a real project constraint, improves clarity, or reduces operational risk. Avoid it when it only adds novelty or hides behavior from future maintainers.

What is the biggest risk with From User to Contributor to Maintainer: The Open Source Career Path?

The biggest risk is copying a pattern without its context. Production systems need clear boundaries, rollback options, tests, and observability before a technique becomes dependable.

How do you test From User to Contributor to Maintainer: The Open Source Career Path?

Test the smallest unit that owns the behavior, then add integration coverage for the path users or systems actually rely on. Include failure cases, configuration differences, and regression checks.

How does From User to Contributor to Maintainer: The Open Source Career Path affect SEO and AI search visibility?

It improves visibility when the article gives a direct answer, expert context, structured headings, internal links, trustworthy references, and FAQ content that matches the visible page.

Conclusion

From User to Contributor to Maintainer: The Open Source Career Path is worth doing when the implementation improves clarity, reliability, or delivery speed. It is not worth doing when it hides ownership, increases operational risk, or makes the system harder to explain.

Use the framework above as a review checklist. Then connect this topic to the rest of the project documentation so readers can move from concept to implementation without losing context.

Top