diff --git a/GUI/Model/Sample/InterferenceCatalog.h b/GUI/Model/Sample/InterferenceCatalog.h
index cda030d479503fa16c37dce15a6162735c2802f6..5237d1d77df724b98191ee66740add10d7b08862 100644
--- a/GUI/Model/Sample/InterferenceCatalog.h
+++ b/GUI/Model/Sample/InterferenceCatalog.h
@@ -22,8 +22,6 @@ class InterferenceItem;
 
 class InterferenceCatalog {
 public:
-    using BaseItem = InterferenceItem;
-
     // Do not change the numbering! It is serialized!
     enum class Type : uint8_t {
         None = 0,
diff --git a/GUI/Model/Sample/ParticleLayoutItem.cpp b/GUI/Model/Sample/ParticleLayoutItem.cpp
index 41dcb9345440bd2db1850f5e46f17c24e1efaa9c..dee3a350744e1db33504df92c4735d6cf7394ed6 100644
--- a/GUI/Model/Sample/ParticleLayoutItem.cpp
+++ b/GUI/Model/Sample/ParticleLayoutItem.cpp
@@ -90,11 +90,6 @@ void ParticleLayoutItem::removeItemWithParticle(ItemWithParticles* particle)
     m_particles.delete_element(particle);
 }
 
-const PolyItem<InterferenceCatalog>& ParticleLayoutItem::interferenceSelection() const
-{
-    return m_interference;
-}
-
 bool ParticleLayoutItem::totalDensityIsDefinedByInterference() const
 {
     return dynamic_cast<const Interference2DAbstractLatticeItem*>(m_interference.certainItem())
diff --git a/GUI/Model/Sample/ParticleLayoutItem.h b/GUI/Model/Sample/ParticleLayoutItem.h
index 07cc8b420c3ecc57189517e76d814f199d61d35a..13978a8797d4cc83e2dfa2434c0c125f7b80b261 100644
--- a/GUI/Model/Sample/ParticleLayoutItem.h
+++ b/GUI/Model/Sample/ParticleLayoutItem.h
@@ -17,7 +17,7 @@
 
 #include "Base/Type/OwningVector.h"
 #include "GUI/Model/Descriptor/DoubleProperty.h"
-#include "GUI/Model/Descriptor/PolyItem.h"
+#include "GUI/Model/Descriptor/PolyPtr.h"
 #include "GUI/Model/Sample/InterferenceCatalog.h"
 #include "GUI/Model/Sample/InterferenceItems.h"
 #include "GUI/Model/Sample/Item3D.h"
@@ -53,8 +53,14 @@ public:
     void addItemWithParticleSelection(ItemWithParticles* particle);
     void removeItemWithParticle(ItemWithParticles* particle);
 
-    PolyItem<InterferenceCatalog>& interferenceSelection() { return m_interference; }
-    const PolyItem<InterferenceCatalog>& interferenceSelection() const;
+    PolyPtr<InterferenceItem, InterferenceCatalog>& interferenceSelection()
+    {
+        return m_interference;
+    }
+    const PolyPtr<InterferenceItem, InterferenceCatalog>& interferenceSelection() const
+    {
+        return m_interference;
+    }
     void setInterference(InterferenceItem* i) { m_interference.setCertainItem(i); }
     void removeInterference() { m_interference.setCertainItem(nullptr); }
 
@@ -72,7 +78,7 @@ public:
 
 private:
     DoubleProperty m_own_density;
-    PolyItem<InterferenceCatalog> m_interference;
+    PolyPtr<InterferenceItem, InterferenceCatalog> m_interference;
     OwningVector<ItemWithParticles> m_particles;
     const MaterialsSet* m_materials;
 };