```\nfunction swapBack() private  {\n    uint256 contractBalance = balanceOf(address(this));\n    uint256 totalTokensToSwap = tokensForLiquidity +\n        tokensForDevelopment +\n        tokensForMarketing;\n    bool success;\n\n    if (contractBalance == 0 || totalTokensToSwap == 0) {\n        return;\n    }\n\n    if (contractBalance > swapTokensAtAmount * 20) {\n        contractBalance = swapTokensAtAmount * 20;\n    }\n\n    // Halve the amount of liquidity tokens\n    uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;\n    uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);\n\n    uint256 initialETHBalance = address(this).balance;\n\n    swapTokensForEth(amountToSwapForETH);\n\n    uint256 ethBalance = address(this).balance.sub(initialETHBalance);\n\n    uint256 ethForDevelopment = ethBalance.mul(tokensForDevelopment).div(totalTokensToSwap);\n    uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);\n\n    uint256 ethForLiquidity = ethBalance - ethForDevelopment - ethForMarketing;\n\n    tokensForLiquidity = 0;\n    tokensForDevelopment = 0;\n    tokensForMarketing = 0;\n\n    (success, ) = address(developmentWallet).call{value: ethForDevelopment}("");\n\n    if (liquidityTokens > 0 && ethForLiquidity > 0) {\n        addLiquidity(liquidityTokens, ethForLiquidity);\n        emit SwapAndLiquify(\n            amountToSwapForETH,\n            ethForLiquidity,\n            tokensForLiquidity\n        );\n    }\n    (success, ) = address(marketingWallet).call{value: ethForMarketing}("");\n}\n```\n