diff --git a/GUI/Model/Descriptor/VectorProperty.cpp b/GUI/Model/Descriptor/VectorProperty.cpp
index a464032716ed4b4d83f114de19ef3b6add1a90fc..18b8f9b618eba08fed10f9f09311723a8cf6d8e7 100644
--- a/GUI/Model/Descriptor/VectorProperty.cpp
+++ b/GUI/Model/Descriptor/VectorProperty.cpp
@@ -20,9 +20,16 @@
 using std::variant;
 
 void VectorProperty::init(const QString& label, const QString& tooltip,
-                          const variant<QString, Unit>& unit, const QString& persistentTag)
+                          const variant<QString, Unit>& unit, const QString& uidPrefix)
 {
-    m_persistentTag = persistentTag;
+    init(label, tooltip, R3(0.0, 0.0, 0.0), unit, 3 /*decimals*/, 0.01 /*step*/, RealLimits::limitless(), uidPrefix);
+}
+
+void VectorProperty::init(const QString &label, const QString &tooltip, const R3 &value,
+                          const std::variant<QString, Unit> &unit, uint decimals, double step,
+                          const RealLimits &limits, const QString &uidPrefix)
+{
+    m_persistentTag = uidPrefix;
     m_uid = QUuid::createUuid().toString();
 
     m_descriptor.init(label, tooltip, &x, &y, &z, unit);
@@ -31,7 +38,7 @@ void VectorProperty::init(const QString& label, const QString& tooltip,
 
 bool VectorProperty::operator==(const VectorProperty& other) const
 {
-    return (get() == other.get()) && (m_uid == other.m_uid)
+    return (r3() == other.r3()) && (m_uid == other.m_uid)
            && (m_persistentTag == other.m_persistentTag);
 }
 
@@ -39,7 +46,7 @@ void Serialize::rwProperty(Streamer& s, VectorProperty& d)
 {
     if (QXmlStreamWriter* w = s.xmlWriter()) {
         w->writeStartElement(d.persistentTag());
-        GUI::Session::XML::writeAttribute(w, XML::Tags::Value, d.get());
+        GUI::Session::XML::writeAttribute(w, XML::Tags::Value, d.r3());
         GUI::Session::XML::writeUid(w, d.uid());
         w->writeEndElement();
     } else if (QXmlStreamReader* r = s.xmlReader()) {
diff --git a/GUI/Model/Descriptor/VectorProperty.h b/GUI/Model/Descriptor/VectorProperty.h
index b539e73c19e37e6ebb58d10a379f95ef0c9cccfc..094e4a9db3bc28d9b460fad30bd19ff1028fbc79 100644
--- a/GUI/Model/Descriptor/VectorProperty.h
+++ b/GUI/Model/Descriptor/VectorProperty.h
@@ -34,7 +34,9 @@ class Streamer;
 class VectorProperty {
 public:
     void init(const QString& label, const QString& tooltip, const std::variant<QString, Unit>& unit,
-              const QString& persistentTag);
+              const QString& uidPrefix);
+    void init(const QString& label, const QString& tooltip, const R3& value, const std::variant<QString, Unit>& unit,
+              uint decimals, double step, const RealLimits& limits, const QString& uidPrefix);
 
     VectorDescriptor descriptor() const { return m_descriptor; }
     operator VectorDescriptor() const { return m_descriptor; }
@@ -45,7 +47,7 @@ public:
     void setY(double _y) { y.set(_y); }
     void setZ(double _z) { z.set(_z); }
     void set(const R3& d) { setX(d.x()); setY(d.y()); setZ(d.z());}
-    R3 get() const { return *this; }
+    R3 r3() const { return *this; }
 
     QString persistentTag() const { return m_persistentTag; }
     QString uid() const { return m_uid; }
diff --git a/GUI/Model/Sample/MaterialItem.cpp b/GUI/Model/Sample/MaterialItem.cpp
index 66647cd5898f27e051b348e449483e648c478478..0dced69e677d311667ceb9471401b200462bd941 100644
--- a/GUI/Model/Sample/MaterialItem.cpp
+++ b/GUI/Model/Sample/MaterialItem.cpp
@@ -172,7 +172,7 @@ R3 MaterialItem::magnetization() const
 
 void MaterialItem::setMagnetization(const R3& magnetization)
 {
-    if (m_magnetization.get() != magnetization) {
+    if (m_magnetization.r3() != magnetization) {
         m_magnetization.set(magnetization);
         emit dataChanged();
     }