initialize the various components using the supplied \*\*kwargs

        Parameters
        ----------
        kwargs: dict
            \*\*kwargs dict as received by __init__()

def _initialize_components(self, kwargs):
        """initialize the various components using the supplied \*\*kwargs

        Parameters
        ----------
        kwargs: dict
            \*\*kwargs dict as received by __init__()

        """
        tomodir = None

        # load/assign grid
        if 'tomodir' in kwargs:
            # load grid
            tomodir = kwargs.get('tomodir')
            print('importing tomodir {}'.format(tomodir))
            assert os.path.isdir(tomodir)
            grid = CRGrid.crt_grid(
                tomodir + os.sep + 'grid' + os.sep + 'elem.dat',
                tomodir + os.sep + 'grid' + os.sep + 'elec.dat',
            )
            self.grid = grid
        elif 'grid' in kwargs:
            self.grid = kwargs.get('grid')
        elif 'elem_file' in kwargs and 'elec_file' in kwargs:
            grid = CRGrid.crt_grid()
            grid.load_grid(
                kwargs['elem_file'],
                kwargs['elec_file'],
            )
            self.grid = grid
        else:
            raise Exception(
                'You must provide either a grid instance or ' +
                'elem_file/elec_file file paths'
            )

        crmod_cfg = kwargs.get('crmod_cfg', CRcfg.crmod_config())
        self.crmod_cfg = crmod_cfg

        crtomo_cfg = kwargs.get('crtomo_cfg', CRcfg.crtomo_config())
        self.crtomo_cfg = crtomo_cfg

        parman = kwargs.get('parman', pM.ParMan(self.grid))
        self.parman = parman

        nodeman = kwargs.get('nodeman', nM.NodeMan(self.grid))
        self.nodeman = nodeman

        configs_abmn = kwargs.get('configs_abmn', None)
        config = cConf.ConfigManager(
            nr_of_electrodes=self.grid.nr_of_electrodes
        )
        if configs_abmn is not None:
            config.add_to_configs(configs_abmn)
        self.configs = config

        config_file = kwargs.get('config_file', None)
        if config_file is not None:
            self.configs.load_crmod_config(config_file)

        voltage_file = kwargs.get('volt_file', None)
        if voltage_file is not None:
            cids = self.configs.load_crmod_volt(voltage_file)
            self.assignments['measurements'] = cids

        self.plot = PlotManager.plotManager(
            grid=self.grid,
            nm=self.nodeman,
            pm=self.parman,
        )

        # if we load from a tomodir, also load configs and inversion results
        if tomodir is not None:
            print('importing tomodir results')
            # forward configurations
            config_file = tomodir + os.sep + 'config' + os.sep + 'config.dat'
            if os.path.isfile(config_file):
                self.configs.load_crmod_config(config_file)
            # load inversion results
            self.read_inversion_results(tomodir)