It's not clear to me what `ParameterSet` is. In the current framework the term is used for defining simultaneously the same kind of model with different parameters. For example `p = Poly1DModel(degree=2, param_dim=2)` will create a `Poly1DModel` with two parameter sets (effectively 2 models) which can be evaluated and fit simultaneously. The comment above states that `ParameterSet` is used for model with multiple parameters . Did you mean parameters which are not scalars? If so why is a separate class needed?