def __init__(self, fop=None, fw=None, data=None, **kwargs):
        """Constructor."""
        self._fop = fop
        self._fw = fw
        # we hold our own copy of the data
        self._verbose = kwargs.pop('verbose', False)
        self._debug = kwargs.pop('debug', False)

        self.data = None
        if data is not None:
            if isinstance(data, str):
                self.load(data)
            else:
                self.data = data

        # The inversion framework
        self._initInversionFramework(verbose=self._verbose,
                                     debug=self._debug)

        # The forward operator is stored in self._fw
        self._initForwardOperator(verbose=self._verbose, **kwargs)

        # maybe obsolete
        self.figs = {}
        self.errIsAbsolute = False