diff --git a/GUI/Model/Sample/ParticleItem.cpp b/GUI/Model/Sample/ParticleItem.cpp
index 1e730bebcd89bc63623716d29c7a2993f6b63cd3..380bd82e1a0f9cd2044a33243f5cac48088f23b8 100644
--- a/GUI/Model/Sample/ParticleItem.cpp
+++ b/GUI/Model/Sample/ParticleItem.cpp
@@ -13,16 +13,13 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Group/GroupItem.h"
 #include "GUI/Model/Job/JobItem.h"
-#include "GUI/Model/Job/JobModelFunctions.h"
 #include "GUI/Model/Material/MaterialItem.h"
 #include "GUI/Model/Sample/FormFactorItemCatalog.h"
 #include "GUI/Model/Sample/FormFactorItems.h"
 #include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Session/SessionItemUtils.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/Session/Serializer.h"
 #include "Sample/Particle/Particle.h"
 
 namespace {
@@ -41,6 +38,15 @@ ParticleItem::ParticleItem() : ItemWithParticles(abundance_tooltip, position_too
     m_formFactor.set(new CylinderItem());
 }
 
+void ParticleItem::serialize(Serializer& s)
+{
+    s.assertVersion(0);
+    s.rw(m_abundance);
+    s.rw(m_position);
+    s.rw<RotationItemCatalog>(m_rotation);
+    s.rw<FormFactorItemCatalog>(m_formFactor);
+}
+
 std::unique_ptr<Particle> ParticleItem::createParticle() const
 {
     auto domainMaterial = materialItem()->createMaterial();
diff --git a/GUI/Model/Sample/ParticleItem.h b/GUI/Model/Sample/ParticleItem.h
index 29b6e19d92e500e5ea8db2180d7374137b74706b..5eafe2ee8295e6483c241e1e5df69540b25d0658 100644
--- a/GUI/Model/Sample/ParticleItem.h
+++ b/GUI/Model/Sample/ParticleItem.h
@@ -28,6 +28,7 @@ class VectorItem;
 class ParticleItem : public ItemWithMaterial, public ItemWithParticles {
 public:
     ParticleItem();
+    void serialize(Serializer& s) override;
 
     std::unique_ptr<Particle> createParticle() const;