diff --git a/gso/services/netbox_client.py b/gso/services/netbox_client.py
index d5e31fdf14a430dd2049afdece2ba29ef4d93a69..95f1bcfc2b497e10257ba4a919ae2d193d511c5f 100644
--- a/gso/services/netbox_client.py
+++ b/gso/services/netbox_client.py
@@ -125,8 +125,8 @@ class NetBoxClient:
         )
         module_bays = list(self.netbox.dcim.module_bays.filter(device_id=device.id))
         card_type = self.netbox.dcim.module_types.get(model=tier_info.module_type)
-        # TODo: Use the module_bays_slots to create the modules
-        for module_bay in module_bays:
+        valid_module_bays = [bay for bay in module_bays if int(bay.position) in tier_info.module_bays_slots]
+        for module_bay in valid_module_bays:
             self.netbox.dcim.modules.create(
                 device=device.id,
                 module_bay=module_bay.id,
@@ -228,7 +228,7 @@ class NetBoxClient:
 
         # Get the existing lag interfaces for the device
         lag_interface_names = [
-            interface["name"] for interface in self.netbox.dcim.interfaces.filter(device_name=device.id, type="lag")
+            interface["name"] for interface in self.netbox.dcim.interfaces.filter(device=device.name, type="lag")
         ]
 
         # Generate all feasible lags