Review and understanding standard functions of smart contract code

I am working on new project with my friends and looking for good base to create our own smart contract.
Unfortunetly all codes are for my team not completly understandable and as a small investor team we basicly cant afford to create new designed smart contract for our needs. We got hands on some basic code but some of functions of it are mystery for us.

contract NameOfCoin is Context, IERC20, Ownable {

    using SafeMath for uint256;

    using Address for address;

    mapping (address => uint256) private _rOwned;

    mapping (address => uint256) private _tOwned;

    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromFee;

    mapping (address => bool) private _isExcluded;

    address[] private _excluded;

    address private _developmentWalletAddress = WalletForM/C;

    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 2000000000000000 * 10**18; //** this is amount of coins of total supply? <----

    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _tFeeTotal;

    string private _name = "NameOfCoin";

    string private _symbol = "SymbolsOfCoin";

    uint8 private _decimals = 18;

    uint256 public _taxFee = 50; //** this is reflection? <-----

    uint256 private _previousTaxFee = _taxFee;

    uint256 public _developmentFee = 50; //** C/M tax

    uint256 private _previousDevelopmentFee = _developmentFee;

    uint256 public _liquidityFee = 50; //*liquidity tax

    uint256 private _previousLiquidityFee = _liquidityFee;

    IUniswapV2Router02 public immutable uniswapV2Router;

    address public immutable uniswapV2Pair;

    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;

    uint256 public _maxTxAmount = 10000000000000 * 10**18; //** here we dont understand this line and next one, seems like this total amount coins able to buy? <-----

    uint256 private numTokensSellToAddToLiquidity = 1000000000 * 10**18; //** maximum order per buy?? <----

    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(

        uint256 tokensSwapped,

        uint256 ethReceived,

        uint256 tokensIntoLiqudity


    modifier lockTheSwap {

        inSwapAndLiquify = true;


        inSwapAndLiquify = false;


Thanks for using the forum, on this post is not easy to determine which of the functions you are asking for, or if you have any confusion with one of the inheritances. Please follow these guidelines when formulating your question:

In the meantime I'm going to include the documentation for all the contracts you are inheriting so you can check each one:

I ll create than new post and please delete this one. I couldnt find option to do it by myself.