Skip to main content

Legacy System Modernization: A Practical Guide to Transform Your Tech

February 2, 2026|By Brantley Davidson|Founder & CEO
Digital Transformation
26 min read

Discover legacy system modernization best practices to assess, plan, and execute a modern, scalable IT transformation that delivers measurable outcomes.

Legacy System Modernization: A Practical Guide to Transform Your Tech

Table of Contents

Discover legacy system modernization best practices to assess, plan, and execute a modern, scalable IT transformation that delivers measurable outcomes.

Legacy system modernization is more than just swapping out old software. It's a strategic overhaul of the technology that dictates your company's efficiency, security, and ability to grow. A successful modernization ensures your business can compete and innovate without being shackled to slow, inflexible systems.

Key Takeaways

  • The True Cost: Sticking with legacy systems isn't just about maintenance; it creates significant financial drains through technical debt, operational drag, and security vulnerabilities.
  • Strategic Imperative: Modernization isn't an IT project; it's a core business strategy that transforms IT from a cost center into a growth engine.
  • ROI-Driven Approach: Building a successful business case requires quantifying benefits beyond simple cost savings, including productivity gains, revenue lift, and risk mitigation.
  • Execution is Key: Success depends on a phased implementation, strong governance, proactive change management, and measuring business-focused outcomes, not just technical metrics.

The Hidden Costs of Sticking with Legacy Systems

Before building a roadmap forward, you must be brutally honest about the cost of staying put. This isn't just about aging software; it’s about the real, day-to-day financial drain and compounding business risks that your legacy systems create. Left unchecked, these outdated systems quietly become one of your company's biggest liabilities.

A cracked piggy bank labeled 'tech debt', 'security', 'talent gap' spills coins, symbolizing IT cost issues.

The market numbers tell the story. The legacy modernization market is expected to hit $25.76 billion by 2026, a leap from $22.17 billion in 2025. This isn't just growth; it's a direct reaction to the fact that maintaining old tech can devour up to 80% of IT budgets for the 62% of U.S. firms still running on legacy software. The economic pressure is forcing a change.

The Financial Drain of Technical Debt

Think of technical debt as the bill that comes due when you choose a quick, easy fix instead of the right, sustainable one. With legacy systems, that debt compounds daily and shows up in some painfully expensive ways.

  • Skyrocketing Maintenance Costs: Old systems need specialized—and often costly—support. You end up in a constant cycle of patches, custom workarounds, and fragile integrations that bleed resources away from innovation.
  • The Talent Scarcity Trap: Try finding a developer who's an expert in an obsolete language like COBOL. It's tough, and it's expensive. This talent gap isn't just an HR problem; it's a major operational risk.
  • Operational Drag: We've all seen it. Slow, siloed systems force talented people into mind-numbing manual workarounds. It kills productivity, invites costly errors, and tanks morale.

Practical Example: A mid-sized manufacturing firm was spending over $300,000 annually on specialized contractors just to maintain their 20-year-old ERP system. This budget drain prevented them from investing in a modern analytics platform, leaving them unable to compete on supply chain efficiency.

And it's not just about the software. One liability that often gets overlooked is the hidden dangers of improper electronics disposal when you finally retire old hardware, which can open you up to data breaches and hefty environmental fines.

The real cost of a legacy system isn't just what you pay to keep the lights on. It’s the lost opportunities, the dip in productivity, the security nightmares, and the struggle to find good tech talent—all of which hit your bottom line, hard.

To make this clearer, let's look at the two sides of the coin: the opportunities you gain by modernizing versus the risks you run by doing nothing.

Table: Modernization Drivers vs Legacy System Risks

Modernization Driver (The Opportunity) Legacy System Risk (The Cost of Inaction)
Agility and Faster Time-to-Market: Quickly launch new products and features. Innovation Gridlock: Inability to adapt to market changes or customer demands.
Enhanced Security: Implement modern, strong security protocols to protect data. Heightened Cyber-Threats: Unpatched vulnerabilities become prime targets for attackers.
Improved Customer Experience: Deliver seamless, personalized digital experiences. Customer Frustration & Churn: Clunky, unreliable systems drive customers away.
Data-Driven Decisions: Integrate AI and analytics for real-time business insights. Data Silos: Information is fragmented and inaccessible, leading to poor decisions.
Talent Attraction & Retention: Modern tech stacks attract and keep top engineering talent. Widening Talent Gap: Difficulty finding and affording developers for obsolete systems.
Scalability and Performance: Easily scale resources to meet fluctuating demand. Performance Bottlenecks: Frequent crashes and slow performance during peak times.
Reduced Operational Costs: Lower maintenance fees and automated processes. Bloated IT Budgets: Up to 80% of IT spend is wasted on just "keeping the lights on."
Regulatory Compliance: Easily adapt to new standards like GDPR, CCPA, and HIPAA. Compliance Fines & Penalties: Inability to meet data privacy and security regulations.

This table lays it out. Every opportunity gained through modernization directly counters a significant risk posed by inaction.

Security Vulnerabilities and Compliance Risks

Legacy systems are a hacker's dream. They're often unsupported by vendors, which means security patches are few and far between—if they exist at all. Every unpatched vulnerability is an open invitation for a data breach, which can lead to catastrophic financial and reputational damage.

On top of that, these old systems are often a nightmare for regulatory compliance. Trying to make them compliant with modern rules like GDPR or HIPAA is a constant, expensive battle. A single compliance failure can result in fines that dwarf the cost of a modernization project.

The Impact on Competitiveness and Growth

Here's the bottom line: while your team is stuck patching and propping up old tech, your competitors are deploying agile, cloud-native solutions. They're innovating faster, responding to customers quicker, and capturing market share that could have been yours. This is the biggest cost of all—the opportunity cost.

Impact Opportunity: A modernization initiative isn't just an IT project; it's a business strategy. It transforms your IT budget from a maintenance-focused cost center into a powerful engine for growth. By redirecting the money once wasted on upkeep, you can finally invest in AI-driven analytics, next-generation customer experiences, and new products that secure your place in the market.

How to Build Your Modernization Roadmap

A real modernization roadmap doesn’t start with code. It starts with honest conversations and a clear-eyed assessment of where you are right now. Before you can map out the future, you need a painfully precise understanding of the present. The goal is to create a strategic document that connects every single application to a real business outcome. We're building a complete picture—technical dependencies, data flows, and all the human frustrations that never show up in a system log. This is the bedrock of a plan that prioritizes what actually matters.

Key Takeaways

  • Audit First: A comprehensive system audit is non-negotiable. You must map applications, dependencies, business processes, and data flows to understand your current state.
  • Talk to People: The most valuable insights come from users. Conduct stakeholder interviews to uncover real-world pain points, manual workarounds, and hidden inefficiencies.
  • Prioritize with a Matrix: Use a matrix based on Business Impact and Technical Feasibility to identify quick wins and sequence your projects logically.

Start with a Comprehensive System Audit

First things first, you need a thorough audit of your entire tech stack. This goes way beyond just noting which software versions are out of date. You have to map the entire ecosystem to see how different pieces interact, which business processes they prop up, and where your most critical data lives.

A proper audit should nail down:

  • Application Inventory: A full list of all software, its purpose, its age, and what language it’s built on.
  • Dependency Mapping: A visual map of how systems connect and share data. If one application goes down, what’s the domino effect?
  • Business Process Alignment: A clear line connecting specific business functions—like invoicing or inventory management—to each system.
  • Data Flow Analysis: Tracking the journey of critical data through your systems to find bottlenecks, silos, and security holes.

This technical deep-dive gives you the hard data you need to build an informed roadmap. Think of it like a deep financial audit, but for your technology. For anyone managing customer data, a structured approach like this is non-negotiable. You can see a similar process outlined when you explore the importance of conducting a CRM audit.

The Big Picture: A good system audit reveals more than just what tech you have; it shows you how it actually works (or doesn't work) inside your business. It uncovers the hidden dependencies and single points of failure that can derail everything.

Uncover the Real Pain Points by Talking to People

Technical data only tells half the story. Some of the most valuable insights you’ll ever get come from the people who are stuck using these systems every single day. Stakeholder interviews are where you collect the qualitative data—the stories of frustration, inefficiency, and wasted time. This is what truly defines the cost of your legacy tech.

Talk to everyone, from the frontline staff to department heads. Ask open-ended questions that get them talking about the real-world impact of your system’s limitations.

Questions to Get People Talking:

  • "Walk me through a task that feels way more complicated than it should be. Where does the system slow you down?"
  • "What manual workarounds have you created just to get your job done?"
  • "If you could wave a magic wand and change one thing about this system, what would it be?"
  • "Ballpark it for me: how much time do you waste each week on tasks that should be automated?"

Practical Example: A sales manager reveals it takes 20 minutes of manual data entry across three different systems to generate a single weekly sales report. This single pain point translates to hours of wasted productivity across the entire team each week, providing a powerful, quantifiable metric for your business case.

Prioritize Based on Business Impact, Not Just Tech Debt

With both the hard data and the human stories in hand, you can finally start prioritizing. The idea is to find the quick wins and the most critical projects that will deliver the biggest bang for your buck.

Use a simple matrix to score each system on two axes: Business Impact and Technical Feasibility. A high-impact, high-feasibility project? That’s your phase one, no question. A low-impact, low-feasibility system can probably wait.

Impact Opportunity: This strategic approach ensures your roadmap is a practical, business-focused plan, not just a tech team’s wish list. By mixing a deep technical audit with direct user feedback, you build a powerful foundation for a successful transformation that delivers immediate and long-term value.

Choosing the Right Modernization Strategy

Once you've audited your systems and have a real feel for the pain points, it's time to pick your modernization approach. There's no magic bullet here; the best path forward depends entirely on an application's business value, its technical health, and how critical it is to your company's future. Get this wrong, and you're looking at budget overruns or a "modernized" system that still doesn't deliver what the business actually needs. The whole game is about matching the strategy to the specific context of each application in your portfolio.

This decision tree gives you a simplified way to think through the process based on how critical a system is to your daily operations.

A modernization strategy decision tree flow, asking if a system is business critical, leading to refactor or archive.

As you can see, the first question for any legacy app is simple: is this thing essential? Your answer immediately points you toward a deeper refactor or a straightforward archival.

The Four Core Modernization Plays

The "four Rs" of modernization—Rehost, Replatform, Refactor, and Replace—are your core playbook. Each one strikes a different balance between cost, risk, and business impact. Getting your head around these options is the first real step toward making a smart, strategic call.

  • Rehost (Lift-and-Shift): This is your fastest, least complicated move. You’re essentially just picking up your application from an on-premise server and dropping it into a cloud infrastructure with almost no code changes.
  • Replatform (Lift-and-Tinker): This is a step up from rehosting. It involves making a few small, smart tweaks to the application so it can take better advantage of cloud-native features, like managed databases or auto-scaling.
  • Refactor (Re-architect): Now we're getting into more serious surgery. Refactoring means significantly changing the application's code and architecture, often by breaking down a clunky monolith into nimble microservices to boost flexibility and scale.
  • Replace (Rip-and-Replace): Sometimes, the best move is to just say goodbye. You decommission the old system completely and swap it out for a new solution, whether that’s a modern SaaS platform or a custom-built application.

Key Takeaways

  • No One-Size-Fits-All: The right strategy (Rehost, Replatform, Refactor, Replace) depends entirely on the specific application's business value and technical condition.
  • Balance is Key: Each strategy offers a different trade-off between cost, speed, risk, and long-term business value.
  • Integration Matters: A new system that doesn’t integrate with existing tools simply creates another data silo, defeating the purpose of modernization.

Making the Right Choice for Your Business

Choosing between these strategies isn't a gut feeling; it demands a clear-eyed analysis of each system. A massive piece of this puzzle is Mastering Integration in Salesforce CRM. A new system that doesn’t talk to your existing tools is just another silo, and we're trying to get away from those.

To help you visualize the trade-offs, here’s a quick breakdown of the four main strategies.

Comparing the Four Modernization Strategies

Strategy Description Typical Cost & Timeline Best For
Rehost Moving an application to a new environment (e.g., cloud) with minimal changes. Low & Short (weeks to months) Quickly reducing infrastructure costs or applications with low business value but high stability.
Replatform Migrating an application with minor optimizations to use cloud-native features. Low-to-Moderate & Short-to-Medium Gaining some cloud benefits (like performance) without a major rewrite.
Refactor Significantly restructuring existing code to improve functionality and maintainability. High & Long (months to a year+) Business-critical applications that need more scalability, flexibility, and new features.
Replace Decommissioning a legacy system and adopting a new commercial or custom solution. Very High & Very Long (a year or more) Outdated systems where the cost of maintenance exceeds the value, or when a complete business process overhaul is needed.

This table lays out the fundamental differences, but remember that real-world projects often blend these approaches. You might rehost a few minor apps while you fully refactor your core platform.

Practical Example: A national logistics company's legacy inventory system was rock-solid but costly to maintain on-premise. Instead of a massive refactor, they opted to replatform it to a cloud environment. The result? They cut infrastructure overhead by 30% and boosted system uptime, freeing up cash and IT talent for innovation projects.

The market is definitely moving in this direction. By 2026, a staggering 78% of U.S. enterprises plan to modernize at least 40% of their legacy applications. This isn't just a trend; it's a reaction to mounting security vulnerabilities and new regulations that make "doing nothing" a huge business risk.

Sometimes, an old system is so woven into the fabric of your operations that a simple fix won't cut it. A full replace strategy becomes the only viable option. This is especially true when you're looking at huge, enterprise-wide shifts, like implementing a new CRM. A strategic approach to CRM integration can become the central pillar of your entire modernization plan.

Impact Opportunity: By carefully weighing the business value against the technical state of each system, you can build a phased, realistic roadmap that delivers tangible results without disrupting the entire business.

How to Secure Investment for Your Modernization Project

Getting the green light for a legacy system overhaul means you have to stop talking about technology and start talking about business outcomes. Executives don't sign checks for cleaner code or new servers. They sign checks for a data-driven business case that spells out financial return and strategic value. Your pitch needs to speak the language of the C-suite: ROI, risk reduction, and a clear path to beating the competition.

You have to prove that modernization isn’t just another IT expense. It's a critical investment in the company’s future growth. That means going way beyond simple cost savings and putting hard numbers on the full spectrum of benefits.

Key Takeaways

  • Speak in Outcomes: Frame your proposal around business goals like revenue growth, customer retention, and market share, not technical upgrades.
  • Quantify Everything: Go beyond maintenance cost savings. Calculate the dollar value of productivity gains, increased revenue, and mitigated security risks.
  • Create Urgency: Articulate the "cost of doing nothing" by quantifying the financial and competitive losses incurred for every quarter of delay.

Building a Business Case That Speaks to Outcomes

Your business case is everything. It has to be airtight, anticipating every tough question leadership will throw at you about cost, timing, and what they’re really getting for their money. A strong proposal is built on a foundation of solid data and a direct line to the company's biggest goals.

Start by framing the project around what the business actually cares about.

Don't say: "We need to replace our old CRM."

Instead, try: "We can boost sales velocity by 15% and improve customer retention by 10% with a modern CRM that gives us a unified view of the customer." See the difference? One is a cost, the other is a direct investment in revenue and customer loyalty.

Quantifying Benefits Beyond Simple Cost Savings

Cutting maintenance costs is great, but it’s rarely enough to justify a multi-million dollar project on its own. The most convincing business cases are the ones that quantify the “soft” benefits and turn them into hard numbers for your ROI model.

  • Productivity Gains: Do the math on time saved by automating soul-crushing manual work. If your sales team is burning a collective 50 hours per week on manual data entry that a new system would kill, that's a direct, measurable productivity gain you can slap a dollar value on.
  • Revenue Lift: Model the potential revenue bump from a better customer experience. For an e-commerce business, a faster, more reliable platform could slash cart abandonment rates, leading directly to more sales.
  • Risk Mitigation: Put a number on the potential cost of a security breach on your ancient system. The average cost of a data breach is in the millions. An investment in a secure, modern platform starts to look like a pretty cheap insurance policy.

Legacy systems aren't just outdated; they are active cash incinerators. A well-executed modernization project doesn't just cut costs—it reallocates wasted operational spend into a powerful engine for growth and innovation.

Articulating the True Cost of Delay

One of the most powerful tools in your arsenal is calculating the cost of doing nothing. This flips the entire conversation from "How much will this cost?" to "How much are we losing every single quarter we don't do this?"

Practical Example: Frame the urgency in terms leadership can't ignore: "Every quarter we postpone this project, we're leaving an estimated $500,000 in potential revenue on the table and exposing ourselves to a 20% higher risk of a critical security failure." That creates a sense of urgency that a simple cost-benefit analysis just can't match.

The numbers don't lie. Sticking with legacy systems is a massive drain. Modernization promises 20% cost reductions, which can effectively double the transformation investment for leaders who get on board.

By 2026, 62% of U.S. firms will be wrestling with software so old it eats up 80% of IT budgets. This leaves them exposed to an average of $370 million in annual losses per enterprise from technical debt alone. The market is already moving, with a projected value of $56.87 billion by 2030. You can find more insights on the data transformation challenge at integrate.io.

Impact Opportunity: When you build a comprehensive model that includes direct savings, productivity gains, new revenue opportunities, and the steep cost of inaction, your proposal is no longer just a technical request. It becomes a strategic business imperative that’s impossible to ignore.

Executing Your Plan and Measuring Real Success

A great modernization strategy is one thing on paper, but making it happen in the real world is a completely different ballgame. This is where the rubber meets the road. Success hinges on disciplined execution, getting your people on board, and tracking the metrics that actually move the needle for the business. Let’s be honest: even the most brilliant tech project will fall flat without solid governance and genuine user buy-in.

A whiteboard displays project phases: Pilot, Rollout, and Training, with a rising success graph, a team, and text on governance and user adoption.

Key Takeaways

  • Start Small, Win Big: Use a phased implementation, starting with a pilot program to manage risk, learn, and build momentum.
  • People are the Project: Strong governance prevents scope creep, but proactive change management is what drives user adoption—the ultimate measure of ROI.
  • Measure What Matters: Track business-focused metrics like operational efficiency, sales performance, and customer lifetime value to prove the project's impact on the bottom line.

Phased Implementation From Pilot to Full Rollout

Trying to boil the ocean by modernizing everything at once is a classic mistake. It's a recipe for chaos. A phased approach, on the other hand, lets you manage risk, learn as you go, and build momentum with small wins.

Kick things off with a pilot program. Pick a single department or a specific business process to be your guinea pig. This creates a controlled environment where you can test your tech, iron out kinks, and discover those "gotchas" you never anticipated—all without derailing the entire company.

Once the pilot proves out, you can start the broader rollout in stages. You could structure it by:

  • Business Function: Tackle all the sales systems first, then move on to operations or finance.
  • Geography: Get one regional office live and successful before expanding to the next.
  • Modular Deployment: Introduce new features or modules of the system bit by bit.

This iterative process isn't just about playing it safe. Each phase delivers real, tangible value and teaches you lessons that make the next one that much smoother.

The Critical Role of Governance and Change Management

A clear governance framework is the project's spine. It answers the critical questions: Who makes the final call? How do we track progress? What's the plan when things inevitably go sideways? Without it, you get scope creep, blown budgets, and endless drift.

Your governance team needs a mix of stakeholders from IT, finance, and the business units feeling the impact. This keeps decisions balanced and tied to company goals, not just what’s technically coolest.

But governance is only half the battle. The human element is where most projects live or die. Change management isn't just a memo about a new system; it's the hard work of getting people to actually want to use the new tools.

I’ve seen it time and again: companies treat modernization as a technology project. It’s not. It’s a people project that happens to involve technology. User adoption is your ultimate ROI, and you have to earn it.

To get people on your side, you need relentless, clear communication. Don't just explain what is changing—explain why. Show them how this new system makes their job easier, not just different. And please, don't skimp on hands-on, role-specific training. It’s non-negotiable for building confidence.

Defining Success Metrics That Matter

To prove this whole effort was worth it, you need to track metrics that the C-suite actually cares about. System uptime is fine for the IT team, but it doesn't tell a business story. The real goal is to connect your technical upgrades to bottom-line business outcomes.

Your metrics should tie directly back to the pain points you uncovered in your initial assessment.

Practical Examples of Business-Focused Metrics:

  • Operational Efficiency: Forget vague promises. Track the real reduction in manual work. A metric like a 69% faster lead-to-appointment time after a system rollout is a concrete win nobody can argue with.
  • Sales Performance: Monitor things like lead-to-close time or average deal size. A modernized CRM should move these numbers up and to the right.
  • Customer Experience: Keep an eye on Customer Lifetime Value (CLV) or Net Promoter Score (NPS). A better system should result in happier customers who stick around longer.
  • Cost Reduction: Think beyond just server costs. Quantify the savings from fewer manual errors, faster onboarding for new hires, and less need for specialized support.

By setting these benchmarks before you begin, you have a clear "before" picture to compare against your "after." These numbers aren't just for a post-mortem report; they’re your proof of ongoing value. This is how you justify the investment and build the case for the next phase of your roadmap. To see how we put this into practice, you can learn more about our approach to reporting and analytics. It’s all about shifting the conversation from project costs to proven business impact.

Common Questions About Modernizing Your Tech

Taking on a legacy system modernization project is a big deal, and it's natural for questions to pop up. Leaders want to know what they're getting into, from the risks and timeline to what the real payoff will be. Let's break down some of the most common concerns we hear.

How Long Does This Actually Take?

The timeline for a modernization project can be anything from a few weeks to a few years. It all comes down to the complexity of your system and the path you choose.

A simple Rehost—often called a "lift-and-shift"—might only take a few weeks. But if you’re doing a complete Replace or a deep Refactor of a core business application, you’re likely looking at an 18 to 24-month journey, sometimes longer.

One thing I've learned is that the initial assessment is everything. A deep discovery and planning phase takes time upfront, but it almost always speeds up the actual execution because you’ve already uncovered the potential roadblocks.

Rushing the planning stage is the most common cause of major delays. A well-defined scope and a phased rollout are your best tools for keeping a project on track.

What Are the Biggest Risks and How Do We Handle Them?

The biggest threats in a modernization project aren’t always technical—they’re usually tied directly to the business. Things like scope creep, budget overruns, and poor user adoption can completely tank a project's value.

The best defense is strong governance and a serious commitment to change management from the very beginning.

  • To Stop Scope Creep: Set up a clear governance committee to approve any changes to the project scope. Every request has to be measured against its business case and its impact on the timeline and budget. No exceptions.
  • To Avoid Budget Overruns: Build a detailed financial model that includes a contingency fund—we typically recommend 15-20% of the total budget—for the inevitable surprises. A phased rollout also helps you control costs by letting you learn and adjust as you go.
  • To Prevent Poor User Adoption: This is the silent killer. You need a proactive change management plan from day one. That means clear communication, solid training, and getting your end-users involved in the design and testing phases. When they feel ownership, they become advocates.

How Do We Keep the Business Running During the Switch?

Keeping daily operations smooth during a massive transition is non-negotiable. The key is to avoid a "big bang" cutover, where you flip the switch from the old system to the new one all at once. That approach is incredibly risky.

A parallel adoption strategy is almost always the safer bet. For a while, you run both the old and new systems at the same time. This gives your teams a chance to validate the new system with real-world data and workflows without bringing business to a halt. Once the new system is proven and people are comfortable with it, you can finally say goodbye to the legacy tech.

Impact Opportunity: A well-managed transition can actually start delivering value before the old system is even gone. By routing specific, low-risk tasks through the new system first, you can demonstrate early wins, build confidence, and turn skeptics into your biggest supporters.

How Do We Measure Success Beyond Just Better Tech?

The real measure of success isn't just about faster servers or less downtime. It’s about the impact on the business. While technical metrics are important, they don’t tell the whole story. Success is defined by the improvements you see in the key business metrics you identified from the start.

Practical Example: We worked with a national service company that measured its success by a 69% faster lead-to-appointment time, all thanks to a new tool inside their CRM. Another client, a community bank, saw its project’s ROI through an 83% reduction in cost-per-lead and $5.9 million in new deposits—all directly tied to their new marketing and sales systems.

Those are the numbers that matter to your leadership team and prove the project was worth it.


At Prometheus Agency, we help you move beyond technical checklists to achieve real business outcomes. We specialize in turning your existing tech stack into a scalable revenue system through AI enablement, CRM optimization, and strategic guidance. Start with our complimentary Growth Audit and AI strategy session to build a modernization roadmap tied to measurable growth. Learn more at https://prometheusagency.co.

Brantley Davidson

Brantley Davidson

Founder & CEO

About Prometheus Agency: We are the technology team middle-market operators don’t have — embedded in their business, accountable for their results. AI, CRM, and ERP transformation for manufacturing, construction, distribution, and logistics companies.

Book a 30-minute discovery call

We are the technology team middle-market leaders don’t have — embedded in their business, accountable for their results.

© 2026 Prometheus Growth Architects. All rights reserved.