    public void initialize() throws OperatorException {
        Product aotProduct;
        if (step1) {
            aotProduct = processAot(sourceProduct);
            if (aotProduct == GaMasterOp.EMPTY_PRODUCT) {
                setTargetProduct(GaMasterOp.EMPTY_PRODUCT);
                return;
            }
        } else {
            aotProduct = sourceProduct;
        }
        if (useFileTileCache) {
            attachFileTileCache(aotProduct);
        }
        Product bbdrProduct;
        if (step2) {
            bbdrProduct = processBbdr(aotProduct);
            if (sensor == Sensor.MERIS) {
                for (String rayleighBandName : BRR_BANDS) {
                    bbdrProduct.addBand(aotProduct.getBand(rayleighBandName));
                }
            }
        } else {
            bbdrProduct = aotProduct;
        }
        setTargetProduct(bbdrProduct);
    }

    public void initialize() throws OperatorException {
        Product aotProduct;
        if (step1) {
            aotProduct = processAot(sourceProduct);
            if (aotProduct == GaMasterOp.EMPTY_PRODUCT) {
                setTargetProduct(GaMasterOp.EMPTY_PRODUCT);
                return;
            }
        } else {
            aotProduct = sourceProduct;
        }
        if (useFileTileCache) {
            attachFileTileCache(aotProduct);
        }
        Product bbdrProduct;
        if (step2) {
            bbdrProduct = processBbdr(aotProduct);
            if (sensor == Sensor.MERIS && idepixAlgorithm == CloudScreeningSelector.GlobAlbedo) {
                for (String rayleighBandName : BRR_BANDS) {
                    bbdrProduct.addBand(aotProduct.getBand(rayleighBandName));
                }
            }
        } else {
            bbdrProduct = aotProduct;
        }
        setTargetProduct(bbdrProduct);
    }
