def __new__(cls, *args, **kwargs):
    """
        Creates a new Propagator object.

        :param args: Unused
        :param kwargs: Additional parameters accepted by the solver.
        :return: Propagator object.

        +------------------------+-----------------+--------------------+
        | Valid kwargs           | Default Value   | Valid Values       |
        +========================+=================+====================+
        | abstol                 | 1e-6            |  > 0               |
        +------------------------+-----------------+--------------------+
        | maxstep                | 0.1             |  > 0               |
        +------------------------+-----------------+--------------------+
        | reltol                 | 1e-6            |  > 0               |
        +------------------------+-----------------+--------------------+
        | program                | 'scipy'         |  {'scipy', 'lie'}  |
        +------------------------+-----------------+--------------------+
        | method                 | 'RKMK'          |  {'RKMK'}          |
        +------------------------+-----------------+--------------------+
        | quick_reconstruct      | False           |  bool              |
        +------------------------+-----------------+--------------------+
        | stepper                | 'RK45'          |  see ivp methods   |
        +------------------------+-----------------+--------------------+
        | variable_step          | True            |  bool              |
        +------------------------+-----------------+--------------------+
        """
    obj = super().__new__(cls, *args, **kwargs)
    obj.abstol = kwargs.get('abstol', 1e-06)
    obj.maxstep = kwargs.get('maxstep', 0.1)
    obj.reltol = kwargs.get('reltol', 1e-06)
    obj.program = kwargs.get('program', 'scipy').lower()
    obj.method = kwargs.get('method', 'RKMK').upper()
    obj.quick_reconstruct = kwargs.get('quick_reconstruct', False)
    obj.stepper = kwargs.get('stepper', 'RK45').upper()
    obj.variable_step = kwargs.get('variable_step', True)
    return obj
