For example, it's unnecessary to declare these internal variables - an early attempt at reducing the amount of code that gets passed to the cl.TailCurve init(). What we can do instead is declare these values that are to be extracted, such as the fit_from and fit_to tail parameters as properties of the CurveConfig class.

Better yet it may be possible to return a dictionary of these values that can be passed as **kwargs to the cl.TailCurve(). This is less explicit, but could reduce about 2 dozen lines of code to a single line.