The core part holds the functionality to store the experimental data (DataClass), that is realised using a shared data pointer. Model preparation is done in the abstract class AbstractModel, that is based on that DataClass. Therefore, each implemented model inherits from AbstractModel and DataClass, respectively (Fig. ). In the specific model implementation, the equations of the model and the number of input parameters have to be defined, as well as the names of each parameter. More details can be found in the source code documentation for the AbstractModel, AbstractTitra-tionModel and Michaelis-Menten-Model. Parallelisation is mostly done using the threads concept utilising QThreadPool and QRunnable, but individual parts use openMP. Data storage is done using the JSON Format (*.json) or Zip compressed JSON (*.suprafit).