diff --git a/GUI/Model/Job/FitParameterContainerItem.cpp b/GUI/Model/Job/FitParameterContainerItem.cpp
index 4db4a667185b611d82566a510cafef9ee7c9501a..4451ba66a8e5436d68e1d08639398ada87a3cf82 100644
--- a/GUI/Model/Job/FitParameterContainerItem.cpp
+++ b/GUI/Model/Job/FitParameterContainerItem.cpp
@@ -26,11 +26,15 @@ namespace {
 
 namespace Tag {
 
-const QString FitParameters("FitParameters");
 const QString FitParameter("FitParameter");
 
 } // namespace Tag
 
+namespace Attrib {
+
+const QString name("name");
+
+}
 } // namespace
 
 FitParameterContainerItem::FitParameterContainerItem(QObject* parent)
@@ -51,9 +55,7 @@ void FitParameterContainerItem::createFitParameter(ParameterItem* parameterItem)
     if (!oldFitPar)
         removeLink(parameterItem);
 
-    FitParameterItem* fitPar = new FitParameterItem(this);
-    m_fitParameterItems.emplace_back(fitPar);
-    updateFitParameterNames();
+    auto* fitPar = createBareFitParameter();
 
     fitPar->setStartValue(parameterItem->valueOfLink());
     fitPar->initMinMaxValues(parameterItem->limitsOfLink());
@@ -134,7 +136,6 @@ void FitParameterContainerItem::removeLink(const ParameterItem* parameterItem)
         fitParItem->removeLink(parameterItem->link());
 }
 
-// for tests
 FitParameterItem* FitParameterContainerItem::createBareFitParameter()
 {
     FitParameterItem* fitPar = new FitParameterItem(this);
@@ -192,21 +193,23 @@ mumufit::Parameters FitParameterContainerItem::createParameters() const
 
 void FitParameterContainerItem::writeTo(QXmlStreamWriter* writer) const
 {
-    // fit parameters
-    writer->writeStartElement(Tag::FitParameters);
-    GUI::Session::XML::writeVectorClass(writer, Tag::FitParameter, m_fitParameterItems);
-    writer->writeEndElement();
+    // fit parameters   
+    for (const auto* fitPar : fitParameterItems()) {
+        writer->writeStartElement(Tag::FitParameter);
+        writer->writeAttribute(Attrib::name, fitPar->displayName());
+        fitPar->writeTo(writer);
+        writer->writeEndElement();
+    }
 }
 
 void FitParameterContainerItem::readFrom(QXmlStreamReader* reader)
-{
+{    
     while (reader->readNextStartElement()) {
 
         // fit parameters
-        if (reader->name() == Tag::FitParameters) {
-            GUI::Session::XML::readVectorClass(reader, Tag::FitParameter, m_fitParameterItems,
-                                               this);
-            GUI::Session::XML::gotoEndElementOfTag(reader, Tag::FitParameters);
+        if (reader->name() == Tag::FitParameter) {
+            createBareFitParameter()->readFrom(reader);
+            GUI::Session::XML::gotoEndElementOfTag(reader, Tag::FitParameter);
 
         } else
             reader->skipCurrentElement();
diff --git a/GUI/Model/Job/FitParameterContainerItem.h b/GUI/Model/Job/FitParameterContainerItem.h
index 29c1d3c507524d2fa8aabc6e5866ee903f288fde..d9c4d6624fdda53ad985311241fd60bd7546b59e 100644
--- a/GUI/Model/Job/FitParameterContainerItem.h
+++ b/GUI/Model/Job/FitParameterContainerItem.h
@@ -60,7 +60,7 @@ public:
 
     void removeLink(const ParameterItem* parameterItem);
 
-    FitParameterItem* createBareFitParameter(); // for tests
+    FitParameterItem* createBareFitParameter();
 
     bool isEmpty();
     void setValuesInParameterContainer(const std::vector<double>& values,
diff --git a/GUI/Model/Model/JobModel.cpp b/GUI/Model/Model/JobModel.cpp
index 1386101c8f261f6e7dae4752009504558b3defb7..b4cda912ee2b21cbedbe9ead450d01cd96f15692 100644
--- a/GUI/Model/Model/JobModel.cpp
+++ b/GUI/Model/Model/JobModel.cpp
@@ -145,7 +145,7 @@ void JobModel::writeTo(QXmlStreamWriter* writer)
     ASSERT(writer);
 
     // jobs
-    for (auto* job : jobItems()) {
+    for (const auto* job : jobItems()) {
         writer->writeStartElement(Tag::Job);
         writer->writeAttribute(Attrib::name, job->jobName());
         job->writeTo(writer);