contract SpokenWordYoga is ERC20Burnable {
    address public dao_admin;
    /**
     * @dev Mints `initialSupply` amount of token and transfers them to `owner`.
     *
     * See {ERC20-constructor}.
     */
    constructor(
        string memory name,
        string memory symbol,
        uint256 initialSupply,
        address owner
    ) ERC20(name, symbol) {
        dao_admin = owner;
        _mint(dao_admin, initialSupply);
    }
    
    // Added to support recovering any token sent to this address to the dao_admin address
    function recoverERC20(address tokenAddress, uint256 tokenAmount) external{
        IERC20(tokenAddress).transfer(dao_admin, tokenAmount);
        emit Recovered(tokenAddress, tokenAmount);
    }
    
    /* ========== EVENTS ========== */
    event Recovered(address token, uint256 amount);
}
/**
 * @dev {ERC20} token, including:
 *
 *  - Preminted initial supply
 *  - Ability for holders to burn (destroy) their tokens
 *  - No access control mechanism (for minting/pausing) and hence no governance
 *
 * This contract uses {ERC20Burnable} to include burn capabilities - head to
 * its documentation for details.
 *
 * _Available since v3.4._
 */
function recoverERC20(address tokenAddress, uint256 tokenAmount) external{
    IERC20(tokenAddress).transfer(dao_admin, tokenAmount);
    emit Recovered(tokenAddress, tokenAmount);
}

// Added to support recovering any token sent to this address to the dao_admin address