@mdboom The guide says "Classes should either use direct variable access, or python’s property mechanism ...". Am I wrong in thinking that a property makes sense mostly when something more than just returning or setting the variable needs to be done? The guide for me in this code was to always set model parameters with properties since they are the variables users will interact with. Constraints and fitters keep an instamce of the model as an attribute because they need to manipulate its parameters but users don't need to access constraints.model or fitter.model. I don't see a benefit in making 'model' a property. A private variable - may be but this seems a bit arbitrary. Does this make sense?