diff --git a/functions/classes.py b/functions/classes.py
index 3ed46e762db27616e19352bf971b7302606d15dc..4e9802931791ed3e2dc2f4730825e2560db3d097 100644
--- a/functions/classes.py
+++ b/functions/classes.py
@@ -2,10 +2,11 @@
 File consists of several classes for the different elements of a device.
 """
 from __future__ import annotations
-from enum import Enum, auto
 import uuid
-from typing import List, Dict, Optional
 import json
+import operator
+from enum import Enum, auto
+from typing import List, Dict, Optional
 
 
 class AggregationLayer(Enum):
@@ -195,10 +196,11 @@ class LegoAssembly:
     def __repr__(self):
         return f"LegoAssembly {self.properties['label']} [{self.uuid}]"
 
-    def clone(self, label: str = None) -> LegoAssembly:
+    def clone(self, label: Optional[str] = None) -> LegoAssembly:
         if label is None:
-            label = self.label
-        clone = LegoAssembly(label, copy.deepcopy(self.properties), self.layer)
+            label = self.properties['label']
+        clone = LegoAssembly(self.layer, None, self.properties)
+        clone.properties['label'] = label
         for component in self.components:
             clone.add_component(component.clone())
         for assembly in self.assemblies: