def remake(self, *args):
        """Replace any existing child widget with the one described by my ``config``.

        This doesn't need arguments, but accepts any positional arguments provided,
        so that you can use this in kvlang

        """
        if not self.config:
            return
        if not all((self.key, self.gett, self.sett, self.listen, self.unlisten)):
            Clock.schedule_once(self.remake, 0)
            return
        if not hasattr(self, 'label'):
            self.label = Label(text=str(self.key))

            def updlabel(*args):
                self.label.text = str(self.key)
            self.bind(key=updlabel)
            self.add_widget(self.label)
        if hasattr(self, 'wid'):
            self.remove_widget(self.wid)
            del self.wid
        control = self.config['control']
        widkwargs = {
            'key': self.key,
            'gett': self.gett,
            'sett': self.sett,
            'listen': self.listen,
            'unlisten': self.unlisten
        }
        if control == 'slider':
            cls = StatRowSlider
            try:
               widkwargs['value'] = float(self.gett(self.key))
               widkwargs['min'] = float(self.config['min'])
               widkwargs['max'] = float(self.config['max'])
            except (KeyError, ValueError):
                return
        elif control == 'togglebutton':
            cls = StatRowToggleButton
            try:
                widkwargs['true_text'] = self.config['true_text']
                widkwargs['false_text'] = self.config['false_text']
            except KeyError:
                return
        elif control == 'textinput':
            cls = StatRowTextInput
        else:
            cls = StatRowLabel
        self.wid = cls(**widkwargs)
        self.bind(
            key=self.wid.setter('key'),
            gett=self.wid.setter('gett'),
            sett=self.wid.setter('sett'),
            listen=self.wid.setter('listen'),
            unlisten=self.wid.setter('unlisten')
        )
        if control == 'slider':
            self.unbind(config=self._toggle_update_config)
            self.bind(config=self._slider_update_config)
        elif control == 'togglebutton':
            self.unbind(config=self._slider_update_config)
            self.bind(config=self._toggle_update_config)
        else:
            self.unbind(config=self._slider_update_config)
            self.unbind(config=self._toggle_update_config)
        self.add_widget(self.wid)
Replace any existing child widget with the one described by my ``config``.

        This doesn't need arguments, but accepts any positional arguments provided,
        so that you can use this in kvlang