diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c18dd8d83ceed1806b50b0aaa46beb7e335fff13
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+__pycache__/
diff --git a/main.py b/main.py
index 1ab60689cf1af7f8ca59e674d3c5af1b7ab11d11..26a26e556d82240eb71b33ef60ccec0b101921dd 100644
--- a/main.py
+++ b/main.py
@@ -2,6 +2,8 @@ from orchestrator import OrchestratorCore
 from orchestrator.cli.main import app as core_cli
 from orchestrator.settings import AppSettings
 
+import products
+
 app = OrchestratorCore(base_settings=AppSettings())
 
 if __name__ == "__main__":
diff --git a/products/__init__.py b/products/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..92c8828d399f26b8d54a264d07a642c4565df187 100644
--- a/products/__init__.py
+++ b/products/__init__.py
@@ -0,0 +1,15 @@
+from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY
+
+from products.product_types.trunk import Trunk
+from products.product_types.trunk_config import TrunkConfig
+from products.product_types.trunk_config_common import TrunkConfigCommon
+from products.product_types.trunk_config_side import TrunkConfigSide
+
+SUBSCRIPTION_MODEL_REGISTRY.update(
+    {
+        "Trunk": Trunk,
+        "Trunk Config": TrunkConfig,
+        "Trunk Config Common": TrunkConfigCommon,
+        "Trunk Config Side": TrunkConfigSide,
+    }
+)
diff --git a/products/product_blocks/trunk.py b/products/product_blocks/trunk.py
index dcd27f16876049ec9b2fe03b83adc8d938adf95e..76237c83a0d8e70003e6a301ce566de5c0dfb4f5 100644
--- a/products/product_blocks/trunk.py
+++ b/products/product_blocks/trunk.py
@@ -7,16 +7,16 @@ from orchestrator.types import SubscriptionLifecycle
 class TrunkBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="TrunkBlock"):
     trunk_id: Optional[int] = None
     geant_s_sid: Optional[str] = None
-    name: Optional[str] = None
+    trunk_name: Optional[str] = None
 
 
 class TrunkBlockProvisioning(TrunkBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
     trunk_id: Optional[int] = None
     geant_s_sid: Optional[str] = None
-    name: str
+    trunk_name: str
 
 
 class TrunkBlock(TrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
     trunk_id: int
     geant_s_sid: str
-    name: str
+    trunk_name: str
diff --git a/products/product_blocks/trunk_config_side.py b/products/product_blocks/trunk_config_side.py
index de792d4922ed7be7e62d4dcb9ff059863e008640..8bf1b039a315a6ef254ef33367e6965526c8dbb3 100644
--- a/products/product_blocks/trunk_config_side.py
+++ b/products/product_blocks/trunk_config_side.py
@@ -9,7 +9,7 @@ from products.product_blocks.trunk_config import TrunkConfigBlock, TrunkConfigBl
 class TrunkConfigSideBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="TrunkConfigSideBlock"):
     trunk_config: TrunkConfigBlockInactive
     trunk_config_side_id: Optional[int] = None
-    name: Optional[str] = None
+    fqdn: Optional[str] = None
     ae_name: Optional[str] = None
     geant_a_sid: Optional[str] = None
     ipv4_address: Optional[str] = None
@@ -20,7 +20,7 @@ class TrunkConfigSideBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLif
 class TrunkConfigSideBlockProvisioning(TrunkConfigSideBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
     trunk_config: TrunkConfigBlockProvisioning
     trunk_config_side_id: Optional[int] = None
-    name: str
+    fqdn: str
     ae_name: Optional[str] = None
     geant_a_sid: Optional[str] = None
     ipv4_address: Optional[str] = None
@@ -31,7 +31,7 @@ class TrunkConfigSideBlockProvisioning(TrunkConfigSideBlockInactive, lifecycle=[
 class TrunkConfigSideBlock(TrunkConfigSideBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
     trunk_config: TrunkConfigBlock
     trunk_config_side_id: int
-    name: str
+    fqdn: str
     ae_name: str
     geant_a_sid: str
     ipv4_address: str
diff --git a/products/product_types/trunk_config.py b/products/product_types/trunk_config.py
index bdd5ca7ad2a3ea943c2ece2dab11c54dc7df4c14..94e48c32a97196db93e05b4e9e4ee82661a3fb43 100644
--- a/products/product_types/trunk_config.py
+++ b/products/product_types/trunk_config.py
@@ -4,13 +4,13 @@ from orchestrator.types import SubscriptionLifecycle
 from products.product_blocks.trunk_config import TrunkConfigBlock, TrunkConfigBlockInactive, TrunkConfigBlockProvisioning
 
 
-class TrunkInactive(SubscriptionModel, is_base=True, lifecycle=[SubscriptionLifecycle.INITIAL]):
+class TrunkConfigInactive(SubscriptionModel, is_base=True, lifecycle=[SubscriptionLifecycle.INITIAL]):
     trunk_config: TrunkConfigBlockInactive
 
 
-class TrunkProvisioning(TrunkInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
+class TrunkConfigProvisioning(TrunkConfigInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
     trunk_config: TrunkConfigBlockProvisioning
 
 
-class Trunk(TrunkProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class TrunkConfig(TrunkConfigProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
     trunk_config: TrunkConfigBlock
diff --git a/products/product_types/trunk_config_common.py b/products/product_types/trunk_config_common.py
index b098f499123565feab493e0e61bcfc6ed1d77470..06999907ebd9a776869a751bdd6d67785da69e61 100644
--- a/products/product_types/trunk_config_common.py
+++ b/products/product_types/trunk_config_common.py
@@ -4,13 +4,13 @@ from orchestrator.types import SubscriptionLifecycle
 from products.product_blocks.trunk_config_common import TrunkConfigCommonBlock, TrunkConfigCommonBlockInactive, TrunkConfigCommonBlockProvisioning
 
 
-class TrunkInactive(SubscriptionModel, is_base=True, lifecycle=[SubscriptionLifecycle.INITIAL]):
+class TrunkConfigCommonInactive(SubscriptionModel, is_base=True, lifecycle=[SubscriptionLifecycle.INITIAL]):
     trunk_config_common: TrunkConfigCommonBlockInactive
 
 
-class TrunkProvisioning(TrunkInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
+class TrunkConfigCommonProvisioning(TrunkConfigCommonInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
     trunk_config_common: TrunkConfigCommonBlockProvisioning
 
 
-class Trunk(TrunkProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class TrunkConfigCommon(TrunkConfigCommonProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
     trunk_config_common: TrunkConfigCommonBlock
diff --git a/products/product_types/trunk_config_side.py b/products/product_types/trunk_config_side.py
index 55b057170df441a772e6a12fe9899928158084e7..c0600fab107f37dc42e57263a7db20e7cdfbd34b 100644
--- a/products/product_types/trunk_config_side.py
+++ b/products/product_types/trunk_config_side.py
@@ -4,13 +4,13 @@ from orchestrator.types import SubscriptionLifecycle
 from products.product_blocks.trunk_config_side import TrunkConfigSideBlock, TrunkConfigSideBlockInactive, TrunkConfigSideBlockProvisioning
 
 
-class TrunkInactive(SubscriptionModel, is_base=True, lifecycle=[SubscriptionLifecycle.INITIAL]):
+class TrunkConfigSideInactive(SubscriptionModel, is_base=True, lifecycle=[SubscriptionLifecycle.INITIAL]):
     trunk_config_side: TrunkConfigSideBlockInactive
 
 
-class TrunkProvisioning(TrunkInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
+class TrunkConfigSideProvisioning(TrunkConfigSideInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
     trunk_config_side: TrunkConfigSideBlockProvisioning
 
 
-class Trunk(TrunkProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class TrunkConfigSide(TrunkConfigSideProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
     trunk_config_side: TrunkConfigSideBlock