diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/ApiUtil.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/ApiUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..6683c4761959adb4763b8e0a613fb47364af1c8e
--- /dev/null
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/ApiUtil.java
@@ -0,0 +1,19 @@
+package org.etsi.osl.tmf.gsm674.api;
+
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import java.io.IOException;
+
+public class ApiUtil {
+    public static void setExampleResponse(NativeWebRequest req, String contentType, String example) {
+        try {
+            HttpServletResponse res = req.getNativeResponse(HttpServletResponse.class);
+            res.setCharacterEncoding("UTF-8");
+            res.addHeader("Content-Type", contentType);
+            res.getWriter().print(example);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java
index 23f1be21eb18cf5f1e9e892df19a50fd53b100d0..475eaede144dd839288630f5c63daf275e08769e 100644
--- a/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/GeographicSiteManagementApiController.java
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import java.util.List;
 
 @Controller
-@RequestMapping("/geographicSiteManagement/v4/")
+@RequestMapping("/geographicSiteManagement/v5/")
 public class GeographicSiteManagementApiController implements GeographicSiteManagementApi{
 
     private static final String COULD_NOT_SERIALIZE="Couldn't serialize response for content type application/json";
diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/HubApi.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/HubApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..f29996f780f1a0f2030345d880381afa76179478
--- /dev/null
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/HubApi.java
@@ -0,0 +1,130 @@
+package org.etsi.osl.tmf.gsm674.api;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import jakarta.validation.Valid;
+import org.etsi.osl.tmf.gsm674.model.EventSubscription;
+import org.etsi.osl.tmf.gsm674.model.EventSubscriptionInput;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import java.io.IOException;
+import java.util.Optional;
+
+@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-04-24T14:24:54.867613034Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT")
+@Validated
+@Tag(name = "events subscription", description = "Endpoints to register and terminate an Event Listener")
+public interface HubApi {
+    Logger log = LoggerFactory.getLogger(HubApi.class);
+    default Optional<ObjectMapper> getObjectMapper(){
+        return Optional.empty();
+    }
+
+    default Optional<NativeWebRequest> getRequest() {
+        return Optional.empty();
+    }
+
+    default Optional<String> getAcceptHeader() {
+        return getRequest().map(r -> r.getHeader("Accept"));
+    }
+
+    /**
+     * POST /hub : Register a listener
+     * Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.
+     *
+     * @param eventSubscriptionInput Data containing the callback endpoint to deliver the information (required)
+     * @return Notified (status code 201)
+     *         or Error (status code 200)
+     */
+    @Operation(
+        operationId = "registerListener",
+        summary = "Register a listener",
+        description = "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
+        tags = { "events subscription" },
+        responses = {
+            @ApiResponse(responseCode = "201", description = "Notified", content = {
+                @Content(mediaType = "application/json;charset=utf-8", schema = @Schema(implementation = EventSubscription.class)),
+                @Content(mediaType = "application/json", schema = @Schema(implementation = EventSubscription.class))
+            }),
+            @ApiResponse(responseCode = "default", description = "Error", content = {
+                @Content(mediaType = "application/json;charset=utf-8", schema = @Schema(implementation = Error.class)),
+                @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class))
+            })
+        }
+    )
+    @RequestMapping(
+        method = RequestMethod.POST,
+        value = "/hub",
+        produces = { "application/json;charset=utf-8", "application/json" },
+        consumes = { "application/json" }
+    )
+    
+    default ResponseEntity<EventSubscription> registerListener(
+        @Parameter(name = "EventSubscriptionInput", description = "Data containing the callback endpoint to deliver the information", required = true) @Valid @RequestBody EventSubscriptionInput eventSubscriptionInput
+    ) {
+        if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) {
+            if (getAcceptHeader().get().contains("application/json")) {
+                try {
+                    return new ResponseEntity<>(getObjectMapper().get().readValue("{  \"query\" : \"query\",  \"callback\" : \"callback\",  \"id\" : \"id\"}",EventSubscription.class), HttpStatus.NOT_IMPLEMENTED);
+                } catch (IOException e) {
+                    log.error("Couldn't serialize response for content type application/json", e);
+                    return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+                }
+            }
+        } else {
+            log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated");
+        }
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
+    /**
+     * DELETE /hub/{id} : Unregister a listener
+     * Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.
+     *
+     * @param id Identifier of the Service (required)
+     * @return Deleted (status code 204)
+     *         or Error (status code 200)
+     */
+    @Operation(
+        operationId = "unregisterListener",
+        summary = "Unregister a listener",
+        description = "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
+        tags = { "events subscription" },
+        responses = {
+            @ApiResponse(responseCode = "204", description = "Deleted"),
+            @ApiResponse(responseCode = "default", description = "Error", content = {
+                @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class))
+            })
+        }
+    )
+    @RequestMapping(
+        method = RequestMethod.DELETE,
+        value = "/hub/{id}",
+        produces = { "application/json" }
+    )
+    
+    default ResponseEntity<Void> unregisterListener(
+        @Parameter(name = "id", description = "Identifier of the Service", required = true, in = ParameterIn.PATH) @PathVariable("id") String id
+    ) {
+        if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) {
+        } else {
+            log.warn("ObjectMapper or HttpServletRequest not configured in default HubApi interface so no example is generated");
+        }
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+}
diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/HubApiController.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/HubApiController.java
new file mode 100644
index 0000000000000000000000000000000000000000..71195a53eb10d27b6a4f3429b6684c0db85e5b3b
--- /dev/null
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/HubApiController.java
@@ -0,0 +1,28 @@
+package org.etsi.osl.tmf.gsm674.api;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import java.util.Optional;
+
+
+@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-04-24T14:24:54.867613034Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT")
+@Controller("HubApiController674")
+@RequestMapping("/geographicSiteManagement/v5/")
+public class HubApiController implements HubApi {
+
+    private final NativeWebRequest request;
+
+    @Autowired
+    public HubApiController(NativeWebRequest request) {
+        this.request = request;
+    }
+
+    @Override
+    public Optional<NativeWebRequest> getRequest() {
+        return Optional.ofNullable(request);
+    }
+
+}
diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/ListenerApi.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/ListenerApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..7de990795063da59dc826f0e8337407cfa7d6799
--- /dev/null
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/ListenerApi.java
@@ -0,0 +1,217 @@
+
+package org.etsi.osl.tmf.gsm674.api;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import org.etsi.osl.tmf.gsm674.model.GeographicSiteAttributeValueChangeEvent;
+import org.etsi.osl.tmf.gsm674.model.GeographicSiteCreateEvent;
+import org.etsi.osl.tmf.gsm674.model.GeographicSiteDeleteEvent;
+import org.etsi.osl.tmf.gsm674.model.GeographicSiteStateChangeEvent;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.NativeWebRequest;
+
+import java.util.Optional;
+
+
+@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-04-24T14:24:54.867613034Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT")
+@Validated
+@Tag(name = "notification listener", description = "Notifications for Resource Lifecycle and event notifications")
+public interface ListenerApi {
+    Logger log = LoggerFactory.getLogger(ListenerApi.class);
+    default Optional<NativeWebRequest> getRequest() {
+        return Optional.empty();
+    }
+    default Optional<ObjectMapper> getObjectMapper() {
+        return Optional.empty();
+    }
+    default Optional<String> getAcceptHeader() {
+        return getRequest().map(r -> r.getHeader("Accept"));
+    }
+    /**
+     * POST /listener/geographicSiteAttributeValueChangeEvent : Client listener for entity GeographicSiteCreateEvent
+     * Example of a client listener for receiving the notification GeographicSiteAttributeValueChangeEvent
+     *
+     * @param geographicSiteAttributeValueChangeEvent The event data (required)
+     * @return Notified (status code 204)
+     *         or Error (status code 200)
+     */
+    @Operation(
+        operationId = "geographicSiteAttributeValueChangeEvent",
+        summary = "Client listener for entity GeographicSiteCreateEvent",
+        description = "Example of a client listener for receiving the notification GeographicSiteAttributeValueChangeEvent",
+        tags = { "notification listener" },
+        responses = {
+            @ApiResponse(responseCode = "204", description = "Notified"),
+            @ApiResponse(responseCode = "default", description = "Error", content = {
+                @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class))
+            })
+        }
+    )
+    @RequestMapping(
+        method = RequestMethod.POST,
+        value = "/listener/geographicSiteAttributeValueChangeEvent",
+        produces = { "application/json" },
+        consumes = { "application/json" }
+    )
+    
+    default ResponseEntity<Void> geographicSiteAttributeValueChangeEvent(
+        @Parameter(name = "GeographicSiteAttributeValueChangeEvent", description = "The event data", required = true) @Valid @RequestBody GeographicSiteAttributeValueChangeEvent geographicSiteAttributeValueChangeEvent
+    ) {
+        getRequest().ifPresent(request -> {
+            for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+                if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
+                    String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }";
+                    ApiUtil.setExampleResponse(request, "application/json", exampleString);
+                    break;
+                }
+            }
+        });
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
+    /**
+     * POST /listener/geographicSiteCreateEvent : Client listener for entity GeographicSiteCreateEvent
+     * Example of a client listener for receiving the notification GeographicSiteCreateEvent
+     *
+     * @param geographicSiteCreateEvent The event data (required)
+     * @return Notified (status code 204)
+     *         or Error (status code 200)
+     */
+    @Operation(
+        operationId = "geographicSiteCreateEvent",
+        summary = "Client listener for entity GeographicSiteCreateEvent",
+        description = "Example of a client listener for receiving the notification GeographicSiteCreateEvent",
+        tags = { "notification listener" },
+        responses = {
+            @ApiResponse(responseCode = "204", description = "Notified"),
+            @ApiResponse(responseCode = "default", description = "Error", content = {
+                @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class))
+            })
+        }
+    )
+    @RequestMapping(
+        method = RequestMethod.POST,
+        value = "/listener/geographicSiteCreateEvent",
+        produces = { "application/json" },
+        consumes = { "application/json" }
+    )
+    
+    default ResponseEntity<Void> geographicSiteCreateEvent(
+        @Parameter(name = "GeographicSiteCreateEvent", description = "The event data", required = true) @Valid @RequestBody GeographicSiteCreateEvent geographicSiteCreateEvent
+    ) {
+        getRequest().ifPresent(request -> {
+            for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+                if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
+                    String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }";
+                    ApiUtil.setExampleResponse(request, "application/json", exampleString);
+                    break;
+                }
+            }
+        });
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
+    /**
+     * POST /listener/geographicSiteDeleteEvent : Client listener for entity GeographicSiteCreateEvent
+     * Example of a client listener for receiving the notification GeographicSiteDeleteEvent
+     *
+     * @param geographicSiteDeleteEvent The event data (required)
+     * @return Notified (status code 204)
+     *         or Error (status code 200)
+     */
+    @Operation(
+        operationId = "geographicSiteDeleteEvent",
+        summary = "Client listener for entity GeographicSiteCreateEvent",
+        description = "Example of a client listener for receiving the notification GeographicSiteDeleteEvent",
+        tags = { "notification listener" },
+        responses = {
+            @ApiResponse(responseCode = "204", description = "Notified"),
+            @ApiResponse(responseCode = "default", description = "Error", content = {
+                @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class))
+            })
+        }
+    )
+    @RequestMapping(
+        method = RequestMethod.POST,
+        value = "/listener/geographicSiteDeleteEvent",
+        produces = { "application/json" },
+        consumes = { "application/json" }
+    )
+    
+    default ResponseEntity<Void> geographicSiteDeleteEvent(
+        @Parameter(name = "GeographicSiteDeleteEvent", description = "The event data", required = true) @Valid @RequestBody GeographicSiteDeleteEvent geographicSiteDeleteEvent
+    ) {
+        getRequest().ifPresent(request -> {
+            for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+                if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
+                    String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }";
+                    ApiUtil.setExampleResponse(request, "application/json", exampleString);
+                    break;
+                }
+            }
+        });
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+
+    /**
+     * POST /listener/geographicSiteStateChangeEvent : Client listener for entity GeographicSiteCreateEvent
+     * Example of a client listener for receiving the notification GeographicSiteStateChangeEvent
+     *
+     * @param geographicSiteStateChangeEvent The event data (required)
+     * @return Notified (status code 204)
+     *         or Error (status code 200)
+     */
+    @Operation(
+        operationId = "geographicSiteStateChangeEvent",
+        summary = "Client listener for entity GeographicSiteCreateEvent",
+        description = "Example of a client listener for receiving the notification GeographicSiteStateChangeEvent",
+        tags = { "notification listener" },
+        responses = {
+            @ApiResponse(responseCode = "204", description = "Notified"),
+            @ApiResponse(responseCode = "default", description = "Error", content = {
+                @Content(mediaType = "application/json", schema = @Schema(implementation = Error.class))
+            })
+        }
+    )
+    @RequestMapping(
+        method = RequestMethod.POST,
+        value = "/listener/geographicSiteStateChangeEvent",
+        produces = { "application/json" },
+        consumes = { "application/json" }
+    )
+    
+    default ResponseEntity<Void> geographicSiteStateChangeEvent(
+        @Parameter(name = "GeographicSiteStateChangeEvent", description = "The event data", required = true) @Valid @RequestBody GeographicSiteStateChangeEvent geographicSiteStateChangeEvent
+    ) {
+        getRequest().ifPresent(request -> {
+            for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
+                if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
+                    String exampleString = "{ \"reason\" : \"reason\", \"code\" : \"code\", \"@baseType\" : \"@baseType\", \"@type\" : \"@type\", \"@schemaLocation\" : \"@schemaLocation\", \"message\" : \"message\", \"referenceError\" : \"referenceError\", \"status\" : \"status\" }";
+                    ApiUtil.setExampleResponse(request, "application/json", exampleString);
+                    break;
+                }
+            }
+        });
+        return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+
+    }
+
+}
diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/api/ListenerApiController.java b/src/main/java/org/etsi/osl/tmf/gsm674/api/ListenerApiController.java
new file mode 100644
index 0000000000000000000000000000000000000000..bfdcd763980b701f1680713c1a1ffdc2b44c1bd3
--- /dev/null
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/api/ListenerApiController.java
@@ -0,0 +1,27 @@
+package org.etsi.osl.tmf.gsm674.api;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.NativeWebRequest;
+import java.util.Optional;
+
+
+@jakarta.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-04-24T14:24:54.867613034Z[Etc/UTC]", comments = "Generator version: 7.6.0-SNAPSHOT")
+@Controller("ListenerApiController674")
+@RequestMapping("/geographicSiteManagement/v5/")
+public class ListenerApiController implements ListenerApi {
+
+    private final NativeWebRequest request;
+
+    @Autowired
+    public ListenerApiController(NativeWebRequest request) {
+        this.request = request;
+    }
+
+    @Override
+    public Optional<NativeWebRequest> getRequest() {
+        return Optional.ofNullable(request);
+    }
+
+}
diff --git a/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java b/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java
index 0887b38e67728cd1d486bf979ded708d74e02f85..1206d8201224198c4ff587db4ef8940ce4b2ecfc 100644
--- a/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java
+++ b/src/main/java/org/etsi/osl/tmf/gsm674/reposervices/GeographicSiteManagementService.java
@@ -58,17 +58,16 @@ public class GeographicSiteManagementService {
 
    private GeographicSite updateFields(GeographicSite newSite, GeographicSite existingSite){
 
-        if(newSite.getName()!=null) existingSite.setName(newSite.getName());
         if(newSite.getDescription()!=null) existingSite.setDescription(newSite.getDescription());
         if(newSite.getCode()!=null) existingSite.setCode(newSite.getCode());
         if (newSite.getStatus()!=null) existingSite.setStatus(newSite.getStatus());
 
-        if(newSite.getGeographicSiteRelationship()!=null){
-            for(GeographicSiteRelationship n : newSite.getGeographicSiteRelationship()){
+        if(newSite.getSiteRelationship() !=null){
+            for(GeographicSiteRelationship n : newSite.getSiteRelationship()){
                  if(n.getUuid()==null){
-                    existingSite.addGeographicSiteRelationship(n);
+                    existingSite.addSiteRelationshipItem(n);
                 }else {
-                     for (GeographicSiteRelationship oldGeographicRelationship : existingSite.getGeographicSiteRelationship()){
+                     for (GeographicSiteRelationship oldGeographicRelationship : existingSite.getSiteRelationship()){
                          if (n.getUuid().equals(oldGeographicRelationship.getUuid())){
                              if (n.getRole() !=null) oldGeographicRelationship.setRole(n.getRole());
                              if (n.getRelationshipType() !=null) oldGeographicRelationship.setRelationshipType(n.getRelationshipType());
@@ -82,7 +81,7 @@ public class GeographicSiteManagementService {
         if(newSite.getCalendar()!=null){
            for(CalendarPeriod c: newSite.getCalendar()){
                if(c.getUuid()==null){
-                   existingSite.addCalendarPeriod(c);
+                   existingSite.addCalendarItem(c);
                } else {
                    for (CalendarPeriod oldCalendarPeriod: existingSite.getCalendar()){
                        if (c.getUuid().equals(oldCalendarPeriod.getUuid())){
@@ -96,20 +95,20 @@ public class GeographicSiteManagementService {
            }
         }
 
-        if(newSite.getPlaceRefOrValue()!=null){
-            for(PlaceRefOrValue p: newSite.getPlaceRefOrValue()){
+        if(newSite.getPlace()!=null){
+            for(PlaceRefOrValue p: newSite.getPlace()){
                 if (p.getUuid()==null){
-                    existingSite.addPlaceRefOrValue(p);
+                    existingSite.addPlaceItem(p);
                 }
             }
         }
 
-        if(newSite.getRelatedParties()!=null){
-            for(RelatedParty party: newSite.getRelatedParties()){
+        if(newSite.getRelatedParty()!=null){
+            for(RelatedParty party: newSite.getRelatedParty()){
                 if(party.getUuid()==null){
-                    existingSite.addRelatedParty(party);
+                    existingSite.addRelatedPartyItem(party);
                 } else {
-                    for (RelatedParty rp: existingSite.getRelatedParties()){
+                    for (RelatedParty rp: existingSite.getRelatedParty()){
                         if(party.getUuid().equals(rp.getUuid())){
                             if (party.getRole() !=null) rp.setRole(party.getRole());
                             if (party.getName() !=null) rp.setName(party.getName());