```\nfunction swapBack() private {\n    uint256 contractBalance = balanceOf(address(this));\n    uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;\n    bool success;\n\n    if(contractBalance == 0 || totalTokensToSwap == 0) {return;}\n\n    if(contractBalance > swapTokensAtAmount * 20){\n      contractBalance = swapTokensAtAmount * 20;\n    }\n\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 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);\n    uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);\n\n\n    uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev;\n\n\n    tokensForLiquidity = 0;\n    tokensForMarketing = 0;\n    tokensForDev = 0;\n\n    (success,) = address(devWallet).call{value: ethForDev}("");\n\n    if(liquidityTokens > 0 && ethForLiquidity > 0){\n        addLiquidity(liquidityTokens, ethForLiquidity);\n        emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);\n    }\n\n\n    (success,) = address(marketingWallet).call{value: address(this).balance}("");\n}\n```\n