457 B Calculator

457(b) Calculator: Estimate Your Retirement Contributions :root { –primary-color: #004a99; –background-color: #ffffff; –card-background: #ffffff; –text-color: #333333; –border-color: #dee2e6; –shadow-color: rgba(0, 0, 0, 0.05); –rounded-corners: 8px; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); line-height: 1.6; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; padding-top: 20px; padding-bottom: 40px; } .container { width: 100%; max-width: 960px; padding: 0 15px; box-sizing: border-box; } header { width: 100%; background-color: var(–card-background); padding: 20px 0; margin-bottom: 30px; box-shadow: var(–shadow-color) 0 2px 4px; text-align: center; } header h1 { margin: 0; color: var(–primary-color); font-size: 2.2em; } main { width: 100%; background-color: var(–card-background); padding: 30px; border-radius: var(–rounded-corners); box-shadow: var(–shadow-color) 0 5px 15px; margin-bottom: 30px; } h2, h3 { color: var(–primary-color); margin-bottom: 15px; } h1 { font-size: 2.5em; margin-bottom: 20px; text-align: center; } .calculator-section { margin-bottom: 40px; padding: 30px; border: 1px solid var(–border-color); border-radius: var(–rounded-corners); background-color: var(–card-background); box-shadow: var(–shadow-color) 0 2px 8px; } .calculator-section h2 { margin-top: 0; text-align: center; margin-bottom: 25px; } .loan-calc-container { display: flex; flex-direction: column; gap: 20px; } .input-group { display: flex; flex-direction: column; gap: 8px; } .input-group label { font-weight: bold; color: var(–text-color); } .input-group input[type="number"], .input-group input[type="text"], .input-group select { padding: 12px; border: 1px solid var(–border-color); border-radius: var(–rounded-corners); font-size: 1em; box-sizing: border-box; width: 100%; } .input-group input[type="number"]:focus, .input-group input[type="text"]:focus, .input-group select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #6c757d; margin-top: 5px; } .input-group .error-message { color: #dc3545; font-size: 0.85em; margin-top: 5px; min-height: 1.2em; } .button-group { display: flex; justify-content: center; gap: 15px; margin-top: 25px; flex-wrap: wrap; } button { padding: 12px 25px; border: none; border-radius: var(–rounded-corners); cursor: pointer; font-size: 1em; font-weight: bold; transition: background-color 0.3s ease, color 0.3s ease; text-transform: uppercase; } button.primary { background-color: var(–primary-color); color: white; } button.primary:hover { background-color: #003366; } button.secondary { background-color: #e9ecef; color: var(–text-color); border: 1px solid var(–border-color); } button.secondary:hover { background-color: #dcdcdc; } .results-container { margin-top: 30px; padding: 25px; border: 1px solid var(–border-color); border-radius: var(–rounded-corners); background-color: #f0f8ff; /* Light blue, subtle variation */ box-shadow: var(–shadow-color) 0 2px 8px; text-align: center; } .results-container h3 { margin-top: 0; font-size: 1.5em; margin-bottom: 20px; } .primary-result { font-size: 2.5em; font-weight: bold; color: var(–primary-color); margin-bottom: 15px; } .intermediate-results div, .key-assumptions div { margin-bottom: 10px; font-size: 1.1em; } .intermediate-results span, .key-assumptions span { font-weight: bold; } .formula-explanation { font-size: 0.95em; color: #6c757d; margin-top: 20px; border-top: 1px dashed var(–border-color); padding-top: 15px; } .chart-container { margin-top: 30px; padding: 25px; border: 1px solid var(–border-color); border-radius: var(–rounded-corners); background-color: var(–card-background); box-shadow: var(–shadow-color) 0 2px 8px; } .chart-container h3 { text-align: center; margin-top: 0; margin-bottom: 20px; } canvas { width: 100% !important; height: auto !important; display: block; margin: 0 auto; } .table-container { margin-top: 30px; overflow-x: auto; padding-bottom: 10px; /* To ensure scrollbar is visible */ } table { width: 100%; border-collapse: collapse; text-align: left; min-width: 600px; /* Minimum width for larger screens */ } table caption { font-size: 1.1em; font-weight: bold; margin-bottom: 15px; color: var(–primary-color); text-align: left; } thead { background-color: var(–primary-color); color: white; } th, td { padding: 12px 15px; border: 1px solid var(–border-color); } tbody tr:nth-child(odd) { background-color: #f8f9fa; } tbody tr:hover { background-color: #e9ecef; } .article-content { width: 100%; background-color: var(–card-background); padding: 30px; border-radius: var(–rounded-corners); box-shadow: var(–shadow-color) 0 5px 15px; margin-top: 30px; } .article-content h2, .article-content h3 { margin-top: 25px; margin-bottom: 15px; color: var(–primary-color); } .article-content p { margin-bottom: 15px; } .article-content ul { padding-left: 25px; margin-bottom: 15px; } .article-content li { margin-bottom: 8px; } .article-content a { color: var(–primary-color); text-decoration: none; font-weight: bold; } .article-content a:hover { text-decoration: underline; } footer { text-align: center; margin-top: 40px; font-size: 0.9em; color: #6c757d; } @media (min-width: 768px) { .loan-calc-container { flex-direction: row; flex-wrap: wrap; justify-content: center; } .loan-calc-container .input-group { flex: 1 1 45%; /* Two columns for inputs on larger screens */ min-width: 250px; } } @media (max-width: 767px) { header h1 { font-size: 1.8em; } main { padding: 20px; } .button-group { flex-direction: column; align-items: center; } button { width: 80%; } .results-container, .chart-container { padding: 20px; } .primary-result { font-size: 2em; } h1 { font-size: 2em; } }

457(b) Calculator: Plan Your Government Employee Retirement

457(b) Contribution Estimator

Enter your gross annual salary.
Enter your desired contribution as a percentage (e.g., 15% is 15).
Enter your current age.
Enter the age you plan to retire.
Enter the expected average annual investment return (e.g., 7%).
Governmental Non-governmental (Top-Hat)
Select your 457(b) plan type.

Your 457(b) Projection

Annual Contributions:
Years to Retirement:
Estimated Total Contributions:
The calculation estimates your annual contribution based on salary and rate, determines years to retirement, and projects total contributions assuming a consistent salary and contribution rate. Future growth is NOT included in these specific totals but is implied for long-term planning.

Key Assumptions:

Current Salary:
Contribution Rate:
Target Retirement Age:
Plan Type:

Contribution Growth Over Time

457(b) Contribution Projection Table
Year Age Starting Balance Annual Contribution Growth (Est.) Ending Balance (Est.)

Understanding Your 457(b) Plan with Our Calculator

What is a 457(b) Plan?

A 457(b) plan, often referred to as a deferred compensation plan, is a type of retirement savings plan primarily available to employees of state and local governments, as well as certain tax-exempt organizations. It functions similarly to a 401(k) or 403(b) but has its own unique rules and benefits. The core purpose of a 457(b) plan is to allow participants to defer a portion of their current income into a retirement account, with contributions growing tax-deferred until withdrawal, typically during retirement.

There are two main types of 457(b) plans: governmental and non-governmental (often called "top-hat" plans). Governmental 457(b) plans offer more flexibility, including the ability to roll over funds to other retirement accounts like an IRA or 401(k) upon leaving employment. Non-governmental 457(b) plans are subject to different rules and are generally less common for typical public sector employees.

The 457(b) calculator is an invaluable tool for public employees and those in tax-exempt organizations to visualize their potential savings and understand the impact of their contribution choices. It helps in planning for a secure retirement by estimating future balances based on current contributions and growth assumptions.

457(b) Contribution Formula and Mathematical Explanation

The fundamental calculation behind a basic 457(b) calculator involves projecting contributions over time. While a full projection includes compound growth, the core contribution calculation is straightforward:

Annual Contribution = Current Annual Salary × (Contribution Rate / 100)

For example, if your current annual salary is $60,000 and you contribute 15% of your salary, your annual contribution would be:

$60,000 × (15 / 100) = $9,000 per year

To determine the total amount contributed over a period, this annual amount is multiplied by the number of years until retirement:

Estimated Total Contributions = Annual Contribution × Years to Retirement

Years to Retirement is calculated as:

Years to Retirement = Target Retirement Age – Current Age

A more advanced 457(b) calculator will incorporate compound interest. The formula for compound growth is:

Future Value = P (1 + r/n)^(nt)

Where:

  • P = Principal amount (total contributions)
  • r = Annual interest rate (assumed annual growth rate)
  • n = Number of times that interest is compounded per year (often assumed annually for simplicity in these calculators)
  • t = Number of years the money is invested for

Our calculator uses these principles to provide estimates, helping users understand the potential of their 457(b) savings.

Practical Examples (Real-World Use Cases)

Consider Sarah, a city planner earning $70,000 annually. She is 40 years old and plans to retire at 65. She wants to understand how much she can contribute and what that might look like long-term. Using the 457(b) calculator:

  • Sarah enters her salary ($70,000), current age (40), and retirement age (65).
  • She decides to contribute 12% of her salary.
  • She assumes a 6% average annual growth rate for her investments.

The 457(b) calculator would show:

  • Annual Contribution: $70,000 × 0.12 = $8,400
  • Years to Retirement: 65 – 40 = 25 years
  • Estimated Total Contributions (before growth): $8,400 × 25 = $210,000
  • Projected Future Value (with growth): The calculator would show a significantly higher amount, illustrating the power of compounding over 25 years, potentially exceeding $500,000 depending on the compounding model.

Another example is Mark, a state employee earning $55,000. He's 50 and aims to retire at 62. He contributes 10% and expects a 5% annual growth rate.

  • Annual Contribution: $55,000 × 0.10 = $5,500
  • Years to Retirement: 62 – 50 = 12 years
  • Estimated Total Contributions (before growth): $5,500 × 12 = $66,000
  • Projected Future Value (with growth): The calculator would estimate a future value considerably larger than $66,000, showcasing the impact of time and consistent investment. This helps Mark gauge if his current savings trajectory is sufficient for his retirement goals.

These examples demonstrate how the 457(b) calculator helps individuals visualize their retirement outlook based on their specific circumstances and contribution decisions. This tool is essential for anyone participating in a 457(b) plan.

How to Use This 457(b) Calculator

Using our 457(b) calculator is simple and designed for clarity. Follow these steps to get your retirement contribution estimates:

  1. Enter Your Current Annual Salary: Input your gross annual salary before taxes and deductions.
  2. Specify Your Contribution Rate: Enter the percentage of your salary you wish to contribute to your 457(b) plan. For instance, if you want to contribute 10%, enter '10'.
  3. Input Your Current Age: Provide your current age to calculate the number of years remaining until retirement.
  4. Set Your Target Retirement Age: Enter the age at which you plan to stop working and begin drawing from your retirement funds.
  5. Estimate Annual Growth Rate: Input an expected average annual rate of return for your investments. A common assumption is between 5% and 8%, but this can vary based on your investment choices and market conditions.
  6. Select Plan Type: Choose whether you have a 'Governmental' or 'Non-governmental' 457(b) plan, as this can affect withdrawal rules.
  7. Click 'Calculate': Once all fields are filled, click the 'Calculate' button.

The calculator will then display your estimated annual contribution, years to retirement, estimated total contributions (without growth), and a projected future value incorporating compound growth. A detailed table and chart will also illustrate the potential growth year by year. Use the 'Reset' button to clear the fields and start over, and 'Copy Results' to save your findings.

Key Factors That Affect 457(b) Results

Several key factors significantly influence the outcome of your 457(b) savings projections:

  • Contribution Amount: The most direct factor. A higher percentage of salary contributed leads to a larger principal amount and a potentially higher future value. Adjusting your contribution rate is a primary lever you control.
  • Years to Retirement: The longer your money is invested, the more time it has to benefit from compound growth. Delaying retirement or starting contributions earlier can dramatically increase your final balance.
  • Assumed Annual Growth Rate: This is a crucial, albeit uncertain, variable. A higher assumed growth rate will lead to a larger projected balance, but it also implies higher investment risk. Conservative estimates are often wise. Investing in low-cost index funds within your 457(b) plan can help achieve steady growth over the long term.
  • Salary Increases: While this basic calculator often assumes a static salary, real-world salaries typically increase over time. Future salary raises could allow for increased contributions, further boosting savings.
  • Catch-Up Contributions: Individuals aged 50 and over, or those within three years of their normal retirement age (for governmental 457(b)s), may be eligible to make additional "catch-up" contributions above the standard annual limits. This calculator does not explicitly model catch-up contributions but they are a vital consideration for older participants.
  • Withdrawal Rules and Taxes: The tax treatment of withdrawals in retirement impacts the net amount you receive. Understanding the rules for your specific plan type is essential. For governmental 457(b) plans, withdrawals are generally taxed as ordinary income.
  • Fees and Expenses: Investment fees within the 457(b) plan can erode returns over time. Lower-fee investments lead to better long-term outcomes.

Understanding these factors allows for more informed decision-making regarding your retirement planning and investment strategy within your 457(b) plan.

Frequently Asked Questions (FAQ)

Q1: What are the 457(b) contribution limits for 2024?

For 2024, the standard contribution limit for a 457(b) plan is $23,000. Additionally, participants aged 50 and over can make a catch-up contribution of $7,500, bringing their total potential contribution to $30,500. Note that governmental and non-governmental plans may have different specific rules regarding catch-up contributions.

Q2: When can I withdraw money from my 457(b) without penalty?

Generally, you can withdraw funds from a 457(b) plan without incurring an early withdrawal penalty (a 10% IRS penalty) after separating from service, regardless of your age. Governmental 457(b) plans generally do not have an early withdrawal penalty, though withdrawals are taxed as ordinary income. Non-governmental plans have more complex withdrawal rules tied to unforeseeable emergencies or separation from service.

Q3: Can I have a 457(b) and a 401(k) or IRA simultaneously?

Yes, you can contribute to a 457(b) plan and a 401(k) or 403(b) plan simultaneously. Contributions to each are subject to their own individual limits. This allows employees eligible for multiple plans to significantly boost their retirement savings. You can also contribute to a Roth IRA or Traditional IRA alongside your 457(b), subject to IRA income limitations.

Q4: What happens to my 457(b) if I leave my job?

If you leave your employer, you generally have a few options for your 457(b) funds: leave them with the current plan administrator (if allowed), roll them over into an IRA, roll them into your new employer's eligible retirement plan (like a 401(k) or another 457(b)), or take a distribution (which will be subject to ordinary income tax).

Q5: Is my 457(b) contribution tax-deductible?

Contributions to a traditional 457(b) plan reduce your taxable income for the year they are made. This means your current income tax liability is lower. The money grows tax-deferred, and withdrawals in retirement are taxed as ordinary income.

Related Tools and Internal Resources

© 2024 Your Financial Website. All rights reserved.

function validateInput(id, min, max, errorMessageId, helperTextId, message) { var input = document.getElementById(id); var errorDiv = document.getElementById(errorMessageId); var helperDiv = document.getElementById(helperTextId); var value = parseFloat(input.value); errorDiv.textContent = "; if (helperDiv) helperDiv.style.display = 'block'; if (input.value === "") { errorDiv.textContent = 'This field is required.'; if (helperDiv) helperDiv.style.display = 'none'; return false; } if (isNaN(value)) { errorDiv.textContent = 'Please enter a valid number.'; if (helperDiv) helperDiv.style.display = 'none'; return false; } if (min !== null && value max) { errorDiv.textContent = message || `Value must be no more than ${max}.`; if (helperDiv) helperDiv.style.display = 'none'; return false; } return true; } function getInputValue(id) { var element = document.getElementById(id); if (element && element.value !== "") { return parseFloat(element.value); } return null; } function updateResultDisplay(id, value, currency = false, unit = ") { var element = document.getElementById(id); if (element) { var formattedValue = value === null ? '–' : value.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 }); if (currency) { formattedValue = '$' + formattedValue; } element.textContent = formattedValue + unit; } } function updateAssumptions() { var salary = getInputValue('currentSalary'); var rate = getInputValue('contributionRate'); var retAge = getInputValue('retirementAge'); var planType = document.getElementById('planType').value; updateResultDisplay('assumptionSalary', salary, true); updateResultDisplay('assumptionRate', rate !== null ? rate + '%' : '–'); updateResultDisplay('assumptionRetirementAge', retAge !== null ? retAge : '–'); document.getElementById('assumptionPlanType').textContent = planType === 'governmental' ? 'Governmental' : 'Non-governmental'; } var myChart; function calculate457b() { var salary = getInputValue('currentSalary'); var rate = getInputValue('contributionRate'); var currentAge = getInputValue('age'); var retirementAge = getInputValue('retirementAge'); var growthRate = getInputValue('annualGrowthRate'); var planType = document.getElementById('planType').value; var valid = true; if (!validateInput('currentSalary', 0, null, 'currentSalaryError', 'helper-currentSalary', 'Salary cannot be negative.')) valid = false; if (!validateInput('contributionRate', 0, 100, 'contributionRateError', 'helper-contributionRate', 'Rate must be between 0 and 100%.')) valid = false; if (!validateInput('age', 18, 120, 'ageError', 'helper-age', 'Age must be between 18 and 120.')) valid = false; if (!validateInput('retirementAge', currentAge !== null ? currentAge + 1 : 18, 120, 'retirementAgeError', 'helper-retirementAge', 'Retirement age must be after current age and realistic.')) valid = false; if (!validateInput('annualGrowthRate', 0, 20, 'annualGrowthRateError', 'helper-annualGrowthRate', 'Growth rate must be between 0% and 20%.')) valid = false; if (!valid) { document.getElementById('resultsContainer').style.display = 'none'; document.getElementById('chartContainer').style.display = 'none'; return; } var annualContribution = salary * (rate / 100); var yearsToRetirement = retirementAge – currentAge; var estimatedTotalContributions = annualContribution * yearsToRetirement; // Calculate projected values for chart and table var chartDataYears = []; var chartDataBalances = []; var chartDataContributions = []; var tableRows = "; var currentBalance = 0; for (var i = 0; i < yearsToRetirement; i++) { var age = currentAge + i; var contributionThisYear = annualContribution; // Assuming stable contribution for simplicity in this basic model var growthThisYear = currentBalance * (growthRate / 100); var endingBalance = currentBalance + contributionThisYear + growthThisYear; chartDataYears.push(age); chartDataBalances.push(endingBalance); chartDataContributions.push(contributionThisYear); tableRows += ''; tableRows += '' + (i + 1) + ''; tableRows += '' + age + ''; tableRows += '$' + Math.round(currentBalance).toLocaleString() + ''; tableRows += '$' + Math.round(contributionThisYear).toLocaleString() + ''; tableRows += '$' + Math.round(growthThisYear).toLocaleString() + ''; tableRows += '$' + Math.round(endingBalance).toLocaleString() + ''; tableRows += ''; currentBalance = endingBalance; } document.getElementById('projectionTableBody').innerHTML = tableRows; updateResultDisplay('estimatedAnnualContribution', annualContribution, true); updateResultDisplay('annualContributionsValue', annualContribution, true); updateResultDisplay('yearsToRetirementValue', yearsToRetirement); updateResultDisplay('estimatedTotalContributionsValue', estimatedTotalContributions, true); updateAssumptions(); document.getElementById('resultsContainer').style.display = 'block'; document.getElementById('chartContainer').style.display = 'block'; renderChart(chartDataYears, chartDataBalances, chartDataContributions); } function renderChart(labels, data1, data2) { var ctx = document.getElementById('contributionChart').getContext('2d'); if (myChart) { myChart.destroy(); } myChart = new Chart(ctx, { type: 'line', data: { labels: labels, datasets: [{ label: 'Estimated Ending Balance ($)', data: data1, borderColor: 'var(–primary-color)', backgroundColor: 'rgba(0, 74, 153, 0.2)', fill: true, tension: 0.1 }, { label: 'Annual Contributions ($)', data: data2, borderColor: '#6c757d', backgroundColor: 'rgba(108, 117, 125, 0.2)', fill: false, tension: 0.1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, ticks: { callback: function(value) { if (value >= 1000) { return '$' + value.toLocaleString(); } return '$' + value; } } } }, plugins: { tooltip: { callbacks: { label: function(context) { var label = context.dataset.label || "; if (label) { label += ': '; } if (context.parsed.y !== null) { label += '$' + context.parsed.y.toLocaleString(); } return label; } } } } } }); } function resetCalculator() { document.getElementById('currentSalary').value = "; document.getElementById('contributionRate').value = "; document.getElementById('age').value = "; document.getElementById('retirementAge').value = "; document.getElementById('annualGrowthRate').value = "; document.getElementById('planType').value = 'governmental'; document.getElementById('currentSalaryError').textContent = "; document.getElementById('contributionRateError').textContent = "; document.getElementById('ageError').textContent = "; document.getElementById('retirementAgeError').textContent = "; document.getElementById('annualGrowthRateError').textContent = "; document.getElementById('planTypeError').textContent = "; updateResultDisplay('estimatedAnnualContribution', null, true); updateResultDisplay('annualContributionsValue', null, true); updateResultDisplay('yearsToRetirementValue', null); updateResultDisplay('estimatedTotalContributionsValue', null, true); document.getElementById('resultsContainer').style.display = 'none'; document.getElementById('chartContainer').style.display = 'none'; document.getElementById('projectionTableBody').innerHTML = "; // Clear table if (myChart) { myChart.destroy(); myChart = null; } } function copyResults() { var salary = getInputValue('currentSalary'); var rate = getInputValue('contributionRate'); var age = getInputValue('age'); var retAge = getInputValue('retirementAge'); var growthRate = getInputValue('annualGrowthRate'); var planType = document.getElementById('planType').value; var annualContribution = salary * (rate / 100); var yearsToRetirement = retAge – age; var estimatedTotalContributions = annualContribution * yearsToRetirement; var resultsText = "— 457(b) Calculator Results —\n\n"; resultsText += "Key Assumptions:\n"; resultsText += "- Current Salary: $" + (salary !== null ? salary.toLocaleString() : 'N/A') + "\n"; resultsText += "- Contribution Rate: " + (rate !== null ? rate + '%' : 'N/A') + "\n"; resultsText += "- Current Age: " + (age !== null ? age : 'N/A') + "\n"; resultsText += "- Target Retirement Age: " + (retAge !== null ? retAge : 'N/A') + "\n"; resultsText += "- Assumed Annual Growth Rate: " + (growthRate !== null ? growthRate + '%' : 'N/A') + "\n"; resultsText += "- Plan Type: " + (planType === 'governmental' ? 'Governmental' : 'Non-governmental') + "\n\n"; resultsText += "Calculated Values:\n"; resultsText += "- Estimated Annual Contribution: $" + (annualContribution !== null ? Math.round(annualContribution).toLocaleString() : 'N/A') + "\n"; resultsText += "- Years to Retirement: " + (yearsToRetirement !== null && yearsToRetirement >= 0 ? yearsToRetirement : 'N/A') + "\n"; resultsText += "- Estimated Total Contributions (before growth): $" + (estimatedTotalContributions !== null ? Math.round(estimatedTotalContributions).toLocaleString() : 'N/A') + "\n"; // Add projected ending balance from the last row of the table if available var tableRows = document.getElementById('projectionTableBody').rows; if (tableRows.length > 0) { var lastRow = tableRows[tableRows.length – 1]; var endingBalanceCell = lastRow.cells[5]; // Index 5 is the 'Ending Balance (Est.)' if (endingBalanceCell) { resultsText += "- Estimated Future Value (at retirement): " + endingBalanceCell.textContent + "\n"; } } var textArea = document.createElement('textarea'); textArea.value = resultsText; textArea.style.position = 'fixed'; textArea.style.left = '-9999px'; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); alert('Results copied to clipboard!'); } catch (err) { alert('Failed to copy results. Please copy manually.'); } document.body.removeChild(textArea); } // Add Chart.js library (must be loaded before chart rendering) var script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/chart.js@3.0.0/dist/chart.min.js'; script.onload = function() { console.log('Chart.js loaded'); // Initial calculation or setup if needed }; document.head.appendChild(script); // Ensure initial state is correct window.onload = function() { resetCalculator(); // Sets default display and clears fields // Optionally, perform an initial calculation with default/sensible values if desired // For now, we wait for user input };

Leave a Comment