diff --git a/GUI/Model/Device/PointwiseAxisItem.cpp b/GUI/Model/Device/PointwiseAxisItem.cpp
index c03568880c8ac09868789375a288b99bf02e4359..74911ab0b332ebf3354e9fee9ddcc05d622ba1b9 100644
--- a/GUI/Model/Device/PointwiseAxisItem.cpp
+++ b/GUI/Model/Device/PointwiseAxisItem.cpp
@@ -90,8 +90,7 @@ QByteArray PointwiseAxisItem::serializeBinaryData() const
     if (!m_axis)
         return {};
 
-    Powerfield<double> axisData;
-    axisData.addAxis(*m_axis);
+    Powerfield<double> axisData(*m_axis);
 
     std::stringstream ss;
     ReadWriteINT().writePowerfield(axisData, ss);
diff --git a/GUI/Support/IO/IOUtils.cpp b/GUI/Support/IO/IOUtils.cpp
index 96290bd1b7ceeb1b66e20ceae914f4d3f067571d..219796dbd15ce7b5fc55cc8972d6266469954611 100644
--- a/GUI/Support/IO/IOUtils.cpp
+++ b/GUI/Support/IO/IOUtils.cpp
@@ -14,14 +14,23 @@
 
 #include "GUI/Support/IO/IOUtils.h"
 #include "Device/Data/Powerfield.h"
+#include "Base/Util/Assert.h"
 
 std::unique_ptr<Powerfield<double>> GUI::Util::IO::binifyAxes(const Powerfield<double>& data)
 {
-    std::unique_ptr<Powerfield<double>> result(new Powerfield<double>);
-    for (size_t i = 0; i < data.rank(); ++i) {
-        const IAxis& axis = data.axis(i);
-        result->addAxis(FixedBinAxis(axis.axisName(), axis.size(), 0., axis.size()));
-    }
+    std::unique_ptr<Powerfield<double>> result;
+    if (data.rank()==1) {
+        const IAxis& X = data.axis(0);
+        result.reset(new Powerfield<double>(
+                         FixedBinAxis(X.axisName(), X.size(), 0., X.size())));
+    } else if (data.rank()==2) {
+        const IAxis& X = data.axis(0);
+        const IAxis& Y = data.axis(1);
+        result.reset(new Powerfield<double>(
+                         FixedBinAxis(X.axisName(), X.size(), 0., X.size()),
+                         FixedBinAxis(Y.axisName(), Y.size(), 0., Y.size())));
+    } else
+        ASSERT(0);
     result->setRawDataVector(data.getRawDataVector());
 
     return result;
diff --git a/GUI/View/Loaders/QREDataLoader.cpp b/GUI/View/Loaders/QREDataLoader.cpp
index 30d9928a3a8d0ebd734603ab1cc1b7ed37777842..0310bc9a1b030d19c7cf23989776ac5d3ef8523d 100644
--- a/GUI/View/Loaders/QREDataLoader.cpp
+++ b/GUI/View/Loaders/QREDataLoader.cpp
@@ -544,8 +544,7 @@ void QREDataLoader::createPowerfieldFromParsingResult(RealDataItem* item) const
         rVec.push_back(m_importResult.rValues[lineNr]);
     }
 
-    auto* oData = new Powerfield<double>();
-    oData->addAxis(PointwiseAxis("qVector", qVec));
+    auto* oData = new Powerfield<double>(PointwiseAxis("qVector", qVec));
     oData->setRawDataVector(rVec);
 
     // -- Replacement of item->setImportData(std::move(data));
@@ -570,7 +569,7 @@ void QREDataLoader::createPowerfieldFromParsingResult(RealDataItem* item) const
     specularItem->setAxesRangeToData();
 
     item->setNativeDataUnits(units_name);
-    item->setNativePowerfield(oData->clone()); // takes ownership of odata
+    item->setNativePowerfield(oData->clone()); // also takes ownership
 }
 
 QDataStream& operator<<(QDataStream& stream, const QREDataLoader::ImportSettings& s)