docs: def _setup_core(self):
          '''
          Set up the core minion attributes.
          This is safe to call multiple times.
          '''
          if not self.ready:
              # First call. Initialize.
              self.functions, self.returners, self.function_errors, self.executors = self._load_modules()
              self.serial = salt.payload.Serial(self.opts)
              self.mod_opts = self._prep_mod_opts()
  #            self.matcher = Matcher(self.opts, self.functions)
              self.matchers = salt.loader.matchers(self.opts)
              self.beacons = salt.beacons.Beacon(self.opts, self.functions)
              uid = salt.utils.user.get_uid(user=self.opts.get('user', None))
              self.proc_dir = get_proc_dir(self.opts['cachedir'], uid=uid)
              self.grains_cache = self.opts['grains']
              self.ready = True