Simulation provides write access to SimComponents and TimeSeries collections, but also provides add and remove functions. Based on the principle that multiple ways of doing the same thing can be confusing, consider getting rid of the add and remove functions. This could aid decoupling, e.g. if a class or function just uses the TimeSeriesCollection, say, then it doesn't need to be coupled to the Simulation class. On the other hand, the write access to the collections reduces the encapsulation of the Simulation class. However, I think I still favour this plan.
Simulation provides write access to SimComponents and TimeSeries collections, but also provides add and remove functions. Based on the principle that multiple ways of doing the same thing can be confusing, consider getting rid of the add and remove functions. This could aid decoupling, e.g. if a class or function just uses the TimeSeriesCollection, say, then it doesn't need to be coupled to the Simulation class. On the other hand, the write access to the collections reduces the encapsulation of the Simulation class. However, I think I still favour this plan.