contract BeetleFinance is ERC20Burnable, CMERC20Snapshot {

    constructor(string memory name, string memory symbol, uint8 decimals) ERC20(name, symbol) public payable {
        _setupDecimals(decimals);
        
        // set up required roles
        _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
        _setupRole(SNAPSHOT_ROLE, _msgSender());
    }

    
    // overrides
    function _burn(address account, uint256 value) internal override(ERC20, ERC20Snapshot) {
        super._burn(account, value);
    }

 
    function _transfer(address from, address to, uint256 value)internal override(ERC20, ERC20Snapshot) {
        super._transfer(from, to, value);
    }
}
// imports
function _burn(address account, uint256 value) internal override(ERC20, ERC20Snapshot) {
        super._burn(account, value);
    }
// overrides