def METHOD_NAME(self, estimator, corrector, diagnostics):
    pairwaise_workflow = self.__class__.__name__ == "PairwiseCBMAWorkflow"
    estm_base = PairwiseCBMAEstimator if pairwaise_workflow else CBMAEstimator
    if not isinstance(diagnostics, list) and diagnostics is not None:
        diagnostics = [diagnostics]
    # Check inputs and set defaults if input is None
    default_esimator = (
        MKDAChi2(n_cores=self.n_cores) if pairwaise_workflow else ALE(n_cores=self.n_cores)
    )
    estimator = (
        default_esimator
        if estimator is None
        else _check_input(estimator, estm_base, self._estm_options, n_cores=self.n_cores)
    )
    corrector = (
        FWECorrector(method="montecarlo", n_cores=self.n_cores)
        if corrector is None
        else _check_input(corrector, Corrector, self._corr_options, n_cores=self.n_cores)
    )
    diag_kwargs = {
        "voxel_thresh": self.voxel_thresh,
        "cluster_threshold": self.cluster_threshold,
        "n_cores": self.n_cores,
    }
    if diagnostics is None:
        diagnostics = [Jackknife(**diag_kwargs)]
    else:
        diagnostics = [
            _check_input(diagnostic, Diagnostics, self._diag_options, **diag_kwargs)
            for diagnostic in diagnostics
        ]
    if (not pairwaise_workflow) and isinstance(estimator, PairwiseCBMAEstimator):
        raise AttributeError('"CBMAWorkflow" does not work with pairwise Estimators.')
    self.estimator = estimator
    self.corrector = corrector
    self.diagnostics = diagnostics