docs: 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)