Rename TOSCA Control Loop to ACM

This commit renames the TOSCA Control Loop functionality in CLAMP to
Automation Composition Management.

This review is a direct renaming review and, as everything is renamed
together it is large.

Issue-ID: POLICY-3939
Change-Id: I28f0a6dd889bf3570a4c1365ae9e71fc58db6d6c
Signed-off-by: liamfallon <liam.fallon@est.tech>
diff --git a/participant/participant-impl/participant-impl-cds/pom.xml b/participant/participant-impl/participant-impl-cds/pom.xml
index 0f806a6..0b85867 100644
--- a/participant/participant-impl/participant-impl-cds/pom.xml
+++ b/participant/participant-impl/participant-impl-cds/pom.xml
@@ -30,5 +30,5 @@
 
     <artifactId>policy-clamp-participant-impl-cds</artifactId>
     <name>${project.artifactId}</name>
-    <description>CDS participant, that allows CDS to partake in control loops</description>
+    <description>CDS participant, that allows CDS to partake in automation compositions</description>
 </project>
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/Application.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/Application.java
similarity index 82%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/Application.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/Application.java
index 4f80965..2f26a86 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/Application.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/Application.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http;
+package org.onap.policy.clamp.acm.participant.http;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -29,10 +29,14 @@
  * Starter.
  *
  */
+// @formatter:off
 @SpringBootApplication
-@ComponentScan({"org.onap.policy.clamp.controlloop.participant.http",
-    "org.onap.policy.clamp.controlloop.participant.intermediary"})
-@ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.participant.http.parameters")
+@ComponentScan({
+    "org.onap.policy.clamp.acm.participant.http",
+    "org.onap.policy.clamp.acm.participant.intermediary"
+})
+@ConfigurationPropertiesScan("org.onap.policy.clamp.acm.participant.http.parameters")
+//@formatter:on
 public class Application {
     /**
      * Main class.
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/ParticipantConfig.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/config/ParticipantConfig.java
similarity index 62%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/ParticipantConfig.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/config/ParticipantConfig.java
index ce013a7..e2b5d17 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/ParticipantConfig.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/config/ParticipantConfig.java
@@ -18,10 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.config;
+package org.onap.policy.clamp.acm.participant.http.config;
 
-import org.onap.policy.clamp.controlloop.participant.http.main.handler.ControlLoopElementHandler;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.http.main.handler.AutomationCompositionElementHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 
@@ -29,15 +29,15 @@
 public class ParticipantConfig {
 
     /**
-     * Register ControlLoopElementListener.
+     * Register AutomationCompositionElementListener.
      *
      * @param intermediaryApi the ParticipantIntermediaryApi
-     * @param clElementHandler the ControlLoop Element Handler
+     * @param acElementHandler the AutomationComposition Element Handler
      */
     @Autowired
-    public void registerControlLoopElementListener(ParticipantIntermediaryApi intermediaryApi,
-            ControlLoopElementHandler clElementHandler) {
-        intermediaryApi.registerControlLoopElementListener(clElementHandler);
-        clElementHandler.setIntermediaryApi(intermediaryApi);
+    public void registerAutomationCompositionElementListener(ParticipantIntermediaryApi intermediaryApi,
+            AutomationCompositionElementHandler acElementHandler) {
+        intermediaryApi.registerAutomationCompositionElementListener(acElementHandler);
+        acElementHandler.setIntermediaryApi(intermediaryApi);
     }
 }
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/config/SecurityConfig.java
similarity index 95%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/config/SecurityConfig.java
index 499bbe1..25a945e 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/config/SecurityConfig.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.config;
+package org.onap.policy.clamp.acm.participant.http.config;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Configuration;
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/exception/HttpWebClientException.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/exception/HttpWebClientException.java
similarity index 94%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/exception/HttpWebClientException.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/exception/HttpWebClientException.java
index 6b27700..8978e88 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/exception/HttpWebClientException.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/exception/HttpWebClientException.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.main.exception;
+package org.onap.policy.clamp.acm.participant.http.main.exception;
 
 
 import org.springframework.web.reactive.function.client.WebClientResponseException;
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/handler/AutomationCompositionElementHandler.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/handler/AutomationCompositionElementHandler.java
new file mode 100644
index 0000000..89c9840
--- /dev/null
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/handler/AutomationCompositionElementHandler.java
@@ -0,0 +1,180 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021-2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.http.main.handler;
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.lang.invoke.MethodHandles;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.stream.Collectors;
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.ValidationException;
+import lombok.Setter;
+import org.apache.commons.lang3.tuple.Pair;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigRequest;
+import org.onap.policy.clamp.acm.participant.http.main.webclient.AcHttpClient;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class handles implementation of automationCompositionElement updates.
+ */
+@Component
+public class AutomationCompositionElementHandler implements AutomationCompositionElementListener, Closeable {
+
+    private static final Coder CODER = new StandardCoder();
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+    private final ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
+
+    private final Map<ToscaConceptIdentifier, Pair<Integer, String>> restResponseMap = new ConcurrentHashMap<>();
+
+    @Setter
+    private ParticipantIntermediaryApi intermediaryApi;
+
+    /**
+     * Handle automationCompositionElement statistics.
+     *
+     * @param automationCompositionElementId automation composition element id
+     */
+    @Override
+    public void handleStatistics(UUID automationCompositionElementId) {
+        // Implementation not needed for http participant
+
+    }
+
+    /**
+     * Handle a automation composition element state change.
+     *
+     * @param automationCompositionElementId the ID of the automation composition element
+     * @param currentState the current state of the automation composition element
+     * @param newState the state to which the automation composition element is changing to
+     * @throws PfModelException in case of a model exception
+     */
+    @Override
+    public void automationCompositionElementStateChange(ToscaConceptIdentifier automationCompositionId,
+        UUID automationCompositionElementId, AutomationCompositionState currentState,
+        AutomationCompositionOrderedState newState) {
+        switch (newState) {
+            case UNINITIALISED:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.UNINITIALISED,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            case PASSIVE:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.PASSIVE,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            case RUNNING:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.RUNNING,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            default:
+                LOGGER.warn("Cannot transition from state {} to state {}", currentState, newState);
+                break;
+        }
+    }
+
+    /**
+     * Callback method to handle an update on a automation composition element.
+     *
+     * @param element the information on the automation composition element
+     * @param nodeTemplate toscaNodeTemplate
+     */
+    @Override
+    public void automationCompositionElementUpdate(ToscaConceptIdentifier automationCompositionId,
+        AutomationCompositionElement element, ToscaNodeTemplate nodeTemplate) {
+        try {
+            var configRequest = CODER.convert(nodeTemplate.getProperties(), ConfigRequest.class);
+            Set<ConstraintViolation<ConfigRequest>> violations =
+                Validation.buildDefaultValidatorFactory().getValidator().validate(configRequest);
+            if (violations.isEmpty()) {
+                invokeHttpClient(configRequest);
+                List<Pair<Integer, String>> failedResponseStatus = restResponseMap.values().stream()
+                        .filter(response -> !HttpStatus.valueOf(response.getKey())
+                        .is2xxSuccessful()).collect(Collectors.toList());
+                if (failedResponseStatus.isEmpty()) {
+                    intermediaryApi.updateAutomationCompositionElementState(automationCompositionId, element.getId(),
+                            AutomationCompositionOrderedState.PASSIVE, AutomationCompositionState.PASSIVE,
+                            ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                } else {
+                    LOGGER.error("Error on Invoking the http request: {}", failedResponseStatus);
+                }
+            } else {
+                LOGGER.error("Violations found in the config request parameters: {}", violations);
+                throw new ValidationException("Constraint violations in the config request");
+            }
+        } catch (CoderException | ValidationException | InterruptedException | ExecutionException e) {
+            LOGGER.error("Error invoking the http request for the config ", e);
+        }
+    }
+
+    /**
+     * Invoke a runnable thread to execute http requests.
+     *
+     * @param configRequest ConfigRequest
+     */
+    public void invokeHttpClient(ConfigRequest configRequest) throws ExecutionException, InterruptedException {
+        // Invoke runnable thread to execute https requests of all config entities
+        Future<Map> result = executor.submit(new AcHttpClient(configRequest, restResponseMap), restResponseMap);
+        if (!result.get().isEmpty()) {
+            LOGGER.debug("Http Request Completed: {}", result.isDone());
+        }
+    }
+
+    /**
+     * Closes this stream and releases any system resources associated
+     * with it. If the stream is already closed then invoking this
+     * method has no effect.
+     *
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    public void close() throws IOException {
+        executor.shutdown();
+    }
+}
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/ConfigRequest.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/ConfigRequest.java
similarity index 95%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/ConfigRequest.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/ConfigRequest.java
index 87cab88..c630b3c 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/ConfigRequest.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/ConfigRequest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.main.models;
+package org.onap.policy.clamp.acm.participant.http.main.models;
 
 import java.util.List;
 import java.util.Map;
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/ConfigurationEntity.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/ConfigurationEntity.java
similarity index 94%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/ConfigurationEntity.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/ConfigurationEntity.java
index 8703a9d..6ac2edb 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/ConfigurationEntity.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/ConfigurationEntity.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.main.models;
+package org.onap.policy.clamp.acm.participant.http.main.models;
 
 import java.util.List;
 import javax.validation.Valid;
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/RestParams.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/RestParams.java
similarity index 95%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/RestParams.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/RestParams.java
index fc4e028..717131f 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/models/RestParams.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/models/RestParams.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.main.models;
+package org.onap.policy.clamp.acm.participant.http.main.models;
 
 import java.util.Map;
 import javax.validation.constraints.Max;
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/webclient/ClHttpClient.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/webclient/AcHttpClient.java
similarity index 90%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/webclient/ClHttpClient.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/webclient/AcHttpClient.java
index 0e0ea55..563daec 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/webclient/ClHttpClient.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/main/webclient/AcHttpClient.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.main.webclient;
+package org.onap.policy.clamp.acm.participant.http.main.webclient;
 
 import java.lang.invoke.MethodHandles;
 import java.time.Duration;
@@ -26,10 +26,10 @@
 import java.util.Objects;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.clamp.controlloop.participant.http.main.exception.HttpWebClientException;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigRequest;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigurationEntity;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.RestParams;
+import org.onap.policy.clamp.acm.participant.http.main.exception.HttpWebClientException;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigRequest;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigurationEntity;
+import org.onap.policy.clamp.acm.participant.http.main.models.RestParams;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,7 +40,7 @@
 import org.springframework.web.util.UriComponentsBuilder;
 import reactor.core.publisher.Mono;
 
-public class ClHttpClient implements Runnable {
+public class AcHttpClient implements Runnable {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
@@ -51,7 +51,7 @@
     /**
      * Constructor.
      */
-    public ClHttpClient(ConfigRequest configRequest, Map<ToscaConceptIdentifier, Pair<Integer, String>> responseMap) {
+    public AcHttpClient(ConfigRequest configRequest, Map<ToscaConceptIdentifier, Pair<Integer, String>> responseMap) {
         this.configRequest = configRequest;
         this.responseMap = responseMap;
     }
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/parameters/ParticipantHttpParameters.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/parameters/ParticipantHttpParameters.java
similarity index 84%
rename from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/parameters/ParticipantHttpParameters.java
rename to participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/parameters/ParticipantHttpParameters.java
index 62bbd75..c0f3c6a 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/parameters/ParticipantHttpParameters.java
+++ b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/acm/participant/http/parameters/ParticipantHttpParameters.java
@@ -19,14 +19,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.parameters;
+package org.onap.policy.clamp.acm.participant.http.parameters;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.validation.annotation.Validated;
 
@@ -43,5 +43,4 @@
     @NotNull
     @Valid
     private ParticipantIntermediaryParameters intermediaryParameters;
-
 }
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/handler/ControlLoopElementHandler.java
deleted file mode 100644
index 69d8c75..0000000
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/main/handler/ControlLoopElementHandler.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021-2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.http.main.handler;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.stream.Collectors;
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.ValidationException;
-import lombok.Setter;
-import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigRequest;
-import org.onap.policy.clamp.controlloop.participant.http.main.webclient.ClHttpClient;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-
-/**
- * This class handles implementation of controlLoopElement updates.
- */
-@Component
-public class ControlLoopElementHandler implements ControlLoopElementListener, Closeable {
-
-    private static final Coder CODER = new StandardCoder();
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
-    private ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
-
-    private Map<ToscaConceptIdentifier, Pair<Integer, String>> restResponseMap = new ConcurrentHashMap<>();
-
-    @Setter
-    private ParticipantIntermediaryApi intermediaryApi;
-
-    /**
-     * Handle controlLoopElement statistics.
-     *
-     * @param controlLoopElementId controlloop element id
-     */
-    @Override
-    public void handleStatistics(UUID controlLoopElementId) throws PfModelException {
-        // Implementation not needed for http participant
-
-    }
-
-    /**
-     * Handle a control loop element state change.
-     *
-     * @param controlLoopElementId the ID of the control loop element
-     * @param currentState         the current state of the control loop element
-     * @param newState             the state to which the control loop element is changing to
-     * @throws PfModelException in case of a model exception
-     */
-    @Override
-    public void controlLoopElementStateChange(ToscaConceptIdentifier controlLoopId, UUID controlLoopElementId,
-            ControlLoopState currentState, ControlLoopOrderedState newState) throws PfModelException {
-        switch (newState) {
-            case UNINITIALISED:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                        controlLoopElementId, newState, ControlLoopState.UNINITIALISED,
-                        ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            case PASSIVE:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                        controlLoopElementId, newState, ControlLoopState.PASSIVE,
-                        ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            case RUNNING:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                        controlLoopElementId, newState, ControlLoopState.RUNNING,
-                        ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            default:
-                LOGGER.warn("Cannot transition from state {} to state {}", currentState, newState);
-                break;
-        }
-    }
-
-    /**
-     * Callback method to handle an update on a control loop element.
-     *
-     * @param element the information on the control loop element
-     * @param nodeTemplate toscaNodeTemplate
-     */
-    @Override
-    public void controlLoopElementUpdate(ToscaConceptIdentifier controlLoopId, ControlLoopElement element,
-            ToscaNodeTemplate nodeTemplate) {
-        try {
-            var configRequest = CODER.convert(nodeTemplate.getProperties(), ConfigRequest.class);
-            Set<ConstraintViolation<ConfigRequest>> violations = Validation.buildDefaultValidatorFactory()
-                .getValidator().validate(configRequest);
-            if (violations.isEmpty()) {
-                invokeHttpClient(configRequest);
-                List<Pair<Integer, String>> failedResponseStatus = restResponseMap.values().stream()
-                        .filter(response -> !HttpStatus.valueOf(response.getKey())
-                        .is2xxSuccessful()).collect(Collectors.toList());
-                if (failedResponseStatus.isEmpty()) {
-                    intermediaryApi.updateControlLoopElementState(controlLoopId, element.getId(),
-                            ControlLoopOrderedState.PASSIVE, ControlLoopState.PASSIVE,
-                            ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                } else {
-                    LOGGER.error("Error on Invoking the http request: {}", failedResponseStatus);
-                }
-            } else {
-                LOGGER.error("Violations found in the config request parameters: {}", violations);
-                throw new ValidationException("Constraint violations in the config request");
-            }
-        } catch (CoderException | ValidationException | InterruptedException | ExecutionException e) {
-            LOGGER.error("Error invoking the http request for the config ", e);
-        }
-    }
-
-    /**
-     * Invoke a runnable thread to execute http requests.
-     * @param configRequest ConfigRequest
-     */
-    public void invokeHttpClient(ConfigRequest configRequest) throws ExecutionException, InterruptedException {
-        // Invoke runnable thread to execute https requests of all config entities
-        Future<Map> result = executor.submit(new ClHttpClient(configRequest, restResponseMap), restResponseMap);
-        if (!result.get().isEmpty()) {
-            LOGGER.debug("Http Request Completed: {}", result.isDone());
-        }
-    }
-
-    /**
-     * Closes this stream and releases any system resources associated
-     * with it. If the stream is already closed then invoking this
-     * method has no effect.
-     *
-     * @throws IOException if an I/O error occurs
-     */
-    @Override
-    public void close() throws IOException {
-        executor.shutdown();
-    }
-}
diff --git a/participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml b/participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml
index df0ad7d..8a3d0fb 100644
--- a/participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml
+++ b/participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml
@@ -13,17 +13,17 @@
       name: HttpParticipant0
       version: 1.0.0
     participantType:
-      name: org.onap.k8s.controlloop.HttpControlLoopParticipant
+      name: org.onap.policy.clamp.acm.HttpParticipant
       version: 2.3.4
-    clampControlLoopTopics:
+    clampAutomationCompositionTopics:
       topicSources:
-        - topic: POLICY-CLRUNTIME-PARTICIPANT
+        - topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:message-router}
           topicCommInfrastructure: dmaap
           fetchTimeout: 15000
       topicSinks:
-        - topic: POLICY-CLRUNTIME-PARTICIPANT
+        - topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:message-router}
           topicCommInfrastructure: dmaap
@@ -35,4 +35,4 @@
 server:
   port: 8084
   servlet:
-    context-path: /onap/httpparticipant
+    context-path: /onap/policy/clamp/acm/httpparticipant
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java
new file mode 100644
index 0000000..fbb6894
--- /dev/null
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/handler/AcElementHandlerTest.java
@@ -0,0 +1,106 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.http.handler;
+
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+
+import java.io.IOException;
+import java.util.Map;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.onap.policy.clamp.acm.participant.http.main.handler.AutomationCompositionElementHandler;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigRequest;
+import org.onap.policy.clamp.acm.participant.http.utils.CommonTestData;
+import org.onap.policy.clamp.acm.participant.http.utils.ToscaUtils;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ExtendWith(SpringExtension.class)
+class AcElementHandlerTest {
+
+    @InjectMocks
+    @Spy
+    private AutomationCompositionElementHandler automationCompositionElementHandler =
+        new AutomationCompositionElementHandler();
+
+    @Mock
+    private ParticipantIntermediaryApi participantIntermediaryApi;
+
+    private CommonTestData commonTestData = new CommonTestData();
+
+    private static ToscaServiceTemplate serviceTemplate;
+    private static final String HTTP_AUTOMATION_COMPOSITION_ELEMENT =
+        "org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement";
+
+    @BeforeAll
+    static void init() throws CoderException {
+        serviceTemplate = ToscaUtils.readAutomationCompositionFromTosca();
+    }
+
+    @Test
+    void test_automationCompositionElementeStateChange() throws IOException {
+        var automationCompositionId = commonTestData.getAutomationCompositionId();
+        var element = commonTestData.getAutomationCompositionElement();
+        var automationCompositionElementId = element.getId();
+
+        var config = Mockito.mock(ConfigRequest.class);
+        assertDoesNotThrow(() -> automationCompositionElementHandler.invokeHttpClient(config));
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementStateChange(
+            automationCompositionId, automationCompositionElementId, AutomationCompositionState.PASSIVE,
+            AutomationCompositionOrderedState.PASSIVE));
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementStateChange(
+            automationCompositionId, automationCompositionElementId, AutomationCompositionState.PASSIVE,
+            AutomationCompositionOrderedState.UNINITIALISED));
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementStateChange(
+            automationCompositionId, automationCompositionElementId, AutomationCompositionState.PASSIVE,
+            AutomationCompositionOrderedState.RUNNING));
+
+        automationCompositionElementHandler.close();
+    }
+
+    @Test
+    void test_AutomationCompositionElementUpdate() throws Exception {
+        doNothing().when(automationCompositionElementHandler).invokeHttpClient(any());
+        AutomationCompositionElement element = commonTestData.getAutomationCompositionElement();
+
+        Map<String, ToscaNodeTemplate> nodeTemplatesMap = serviceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementUpdate(
+            commonTestData.getAutomationCompositionId(), element,
+            nodeTemplatesMap.get(HTTP_AUTOMATION_COMPOSITION_ELEMENT)));
+    }
+}
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java
similarity index 95%
rename from participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java
rename to participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java
index 8efff8f..f0a465f 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/rest/ActuatorControllerTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.rest;
+package org.onap.policy.clamp.acm.participant.http.rest;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -27,7 +27,7 @@
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.participant.http.utils.CommonActuatorController;
+import org.onap.policy.clamp.acm.participant.http.utils.CommonActuatorController;
 import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/CommonActuatorController.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java
similarity index 96%
copy from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/CommonActuatorController.java
copy to participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java
index 35ffbb5..cfe3ec2 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/CommonActuatorController.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonActuatorController.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.utils;
+package org.onap.policy.clamp.acm.participant.http.utils;
 
 import static org.junit.Assert.assertEquals;
 
@@ -40,7 +40,7 @@
 public class CommonActuatorController {
 
     public static final String SELF = NetworkUtil.getHostname();
-    public static final String CONTEXT_PATH = "onap/k8sparticipant";
+    public static final String CONTEXT_PATH = "onap/policy/clamp/acm/httpparticipant";
     public static final String ACTUATOR_ENDPOINT = CONTEXT_PATH + "/actuator/";
 
     private static String httpPrefix;
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonTestData.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonTestData.java
new file mode 100644
index 0000000..010d29a
--- /dev/null
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/CommonTestData.java
@@ -0,0 +1,137 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.http.utils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigurationEntity;
+import org.onap.policy.clamp.acm.participant.http.main.models.RestParams;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+
+public class CommonTestData {
+
+    private static final String TEST_KEY_NAME =
+        "org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement";
+
+    /**
+     * Get a automationComposition Element.
+     *
+     * @return automationCompositionElement object
+     */
+    public AutomationCompositionElement getAutomationCompositionElement() {
+        AutomationCompositionElement element = new AutomationCompositionElement();
+        element.setId(UUID.randomUUID());
+        element.setDefinition(new ToscaConceptIdentifier(TEST_KEY_NAME, "1.0.1"));
+        element.setOrderedState(AutomationCompositionOrderedState.PASSIVE);
+        return element;
+    }
+
+    /**
+     * Get query params.
+     *
+     * @return Map of query params
+     */
+    public Map<String, String> getQueryParams() {
+        return Map.of("name", "dummy", "version", "1.0");
+    }
+
+    /**
+     * Get path params.
+     *
+     * @return Map of path params
+     */
+    public Map<String, Object> getPathParams() {
+        return Map.of("id", "123", "name", "dummy");
+    }
+
+    /**
+     * Rest params with GET request.
+     *
+     * @return RestParams obj
+     */
+    public RestParams restParamsWithGet() {
+        return new RestParams(new ToscaConceptIdentifier("getRequest", "1.0"), "GET", "get", 200, null,
+            getQueryParams(), null);
+    }
+
+    /**
+     * Rest params with POST request.
+     *
+     * @return RestParams obj
+     */
+    public RestParams restParamsWithPost() {
+        return new RestParams(new ToscaConceptIdentifier("postRequest", "1.0"), "POST", "post", 200, null,
+            getQueryParams(), "Test body");
+    }
+
+    /**
+     * Rest params with POST request.
+     *
+     * @return RestParams obj
+     */
+    public RestParams restParamsWithInvalidPost() {
+        return new RestParams(new ToscaConceptIdentifier("postRequest", "1.0"), "POST", "post/{id}/{name}", 200,
+            getPathParams(), getQueryParams(), "Test body");
+    }
+
+    /**
+     * Get invalid configuration entity.
+     *
+     * @return ConfigurationEntity obj
+     */
+    public ConfigurationEntity getInvalidConfigurationEntity() {
+        return new ConfigurationEntity(new ToscaConceptIdentifier("config1", "1.0.1"),
+            List.of(restParamsWithGet(), restParamsWithInvalidPost()));
+    }
+
+    /**
+     * Get configuration entity.
+     *
+     * @return ConfigurationEntity obj
+     */
+    public ConfigurationEntity getConfigurationEntity() {
+        return new ConfigurationEntity(new ToscaConceptIdentifier("config1", "1.0.1"),
+            List.of(restParamsWithGet(), restParamsWithPost()));
+    }
+
+    /**
+     * Get automation composition id.
+     *
+     * @return ToscaConceptIdentifier automationCompositionId
+     */
+    public ToscaConceptIdentifier getAutomationCompositionId() {
+        return new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
+    }
+
+    /**
+     * Get headers for config request.
+     *
+     * @return Map of headers
+     */
+    public Map<String, String> getHeaders() {
+        return Map.of("Content-Type", "application/json", "Accept", "application/json");
+    }
+
+}
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/ToscaUtils.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java
similarity index 74%
rename from participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/ToscaUtils.java
rename to participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java
index fdba28c..9e46212 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/ToscaUtils.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/utils/ToscaUtils.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.utils;
+package org.onap.policy.clamp.acm.participant.http.utils;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -40,12 +40,12 @@
      * Read a service template yaml.
      * @return ToscaServiceTemplate
      */
-    public static ToscaServiceTemplate readControlLoopFromTosca() {
-        return serializeControlLoopYaml(TOSCA_TEMPLATE_YAML);
+    public static ToscaServiceTemplate readAutomationCompositionFromTosca() {
+        return serializeAutomationCompositionYaml(TOSCA_TEMPLATE_YAML);
     }
 
-    private static ToscaServiceTemplate serializeControlLoopYaml(String controlLoopFilePath) {
-        String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
-        return yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
+    private static ToscaServiceTemplate serializeAutomationCompositionYaml(String automationCompositionFilePath) {
+        String automationCompositionString = ResourceUtils.getResourceAsString(automationCompositionFilePath);
+        return yamlTranslator.fromYaml(automationCompositionString, ToscaServiceTemplate.class);
     }
 }
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/webclient/ClHttpClientTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java
similarity index 89%
rename from participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/webclient/ClHttpClientTest.java
rename to participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java
index e3ff9db..44ef508 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/webclient/ClHttpClientTest.java
+++ b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/acm/participant/http/webclient/AcHttpClientTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.webclient;
+package org.onap.policy.clamp.acm.participant.http.webclient;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
@@ -38,16 +38,16 @@
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockserver.integration.ClientAndServer;
 import org.mockserver.model.Parameter;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigRequest;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigurationEntity;
-import org.onap.policy.clamp.controlloop.participant.http.main.webclient.ClHttpClient;
-import org.onap.policy.clamp.controlloop.participant.http.utils.CommonTestData;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigRequest;
+import org.onap.policy.clamp.acm.participant.http.main.models.ConfigurationEntity;
+import org.onap.policy.clamp.acm.participant.http.main.webclient.AcHttpClient;
+import org.onap.policy.clamp.acm.participant.http.utils.CommonTestData;
 import org.onap.policy.common.utils.network.NetworkUtil;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 @ExtendWith(SpringExtension.class)
-class ClHttpClientTest {
+class AcHttpClientTest {
 
     private static CommonTestData commonTestData;
 
@@ -99,7 +99,7 @@
         ConfigRequest configRequest = new ConfigRequest(testMockUrl + ":" + mockServerPort, headers,
             List.of(configurationEntity), 10);
 
-        ClHttpClient client = new ClHttpClient(configRequest, responseMap);
+        AcHttpClient client = new AcHttpClient(configRequest, responseMap);
         assertDoesNotThrow(client::run);
         assertThat(responseMap).hasSize(2).containsKey(commonTestData
             .restParamsWithGet().getRestRequestId());
@@ -118,7 +118,7 @@
         ConfigRequest configRequest = new ConfigRequest(testMockUrl + ":" + mockServerPort, headers,
             List.of(configurationEntity), 10);
 
-        ClHttpClient client = new ClHttpClient(configRequest, responseMap);
+        AcHttpClient client = new AcHttpClient(configRequest, responseMap);
         assertDoesNotThrow(client::run);
         assertThat(responseMap).hasSize(2).containsKey(commonTestData
             .restParamsWithGet().getRestRequestId());
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/handler/ClElementHandlerTest.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/handler/ClElementHandlerTest.java
deleted file mode 100644
index 08f008e..0000000
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/handler/ClElementHandlerTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021-2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.http.handler;
-
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.ExecutionException;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.Spy;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.participant.http.main.handler.ControlLoopElementHandler;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigRequest;
-import org.onap.policy.clamp.controlloop.participant.http.utils.CommonTestData;
-import org.onap.policy.clamp.controlloop.participant.http.utils.ToscaUtils;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-
-@ExtendWith(SpringExtension.class)
-class ClElementHandlerTest {
-
-    @InjectMocks
-    @Spy
-    private ControlLoopElementHandler controlLoopElementHandler = new ControlLoopElementHandler();
-
-    @Mock
-    private ParticipantIntermediaryApi participantIntermediaryApi;
-
-    private CommonTestData commonTestData = new CommonTestData();
-
-    private static ToscaServiceTemplate serviceTemplate;
-    private static final String HTTP_CONTROL_LOOP_ELEMENT =
-            "org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement";
-
-    @BeforeAll
-    static void init() throws CoderException {
-        serviceTemplate = ToscaUtils.readControlLoopFromTosca();
-    }
-
-    @Test
-    void test_controlLoopElementeStateChange() throws IOException {
-        var controlLoopId = commonTestData.getControlLoopId();
-        var element = commonTestData.getControlLoopElement();
-        var controlLoopElementId = element.getId();
-
-        var config = Mockito.mock(ConfigRequest.class);
-        assertDoesNotThrow(() -> controlLoopElementHandler.invokeHttpClient(config));
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId, ControlLoopState.PASSIVE, ControlLoopOrderedState.PASSIVE));
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId, ControlLoopState.PASSIVE, ControlLoopOrderedState.UNINITIALISED));
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId, ControlLoopState.PASSIVE, ControlLoopOrderedState.RUNNING));
-
-        controlLoopElementHandler.close();
-    }
-
-    @Test
-    void test_ControlLoopElementUpdate() throws ExecutionException, InterruptedException {
-        doNothing().when(controlLoopElementHandler).invokeHttpClient(any());
-        ControlLoopElement element = commonTestData.getControlLoopElement();
-
-        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
-            serviceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-            .controlLoopElementUpdate(commonTestData.getControlLoopId(), element,
-                nodeTemplatesMap.get(HTTP_CONTROL_LOOP_ELEMENT)));
-    }
-}
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/CommonActuatorController.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/CommonActuatorController.java
deleted file mode 100644
index 5ebce81..0000000
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/CommonActuatorController.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.http.utils;
-
-import static org.junit.Assert.assertEquals;
-
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
-import org.onap.policy.common.gson.GsonMessageBodyHandler;
-import org.onap.policy.common.utils.network.NetworkUtil;
-
-/**
- * Class to perform Rest unit tests.
- *
- */
-public class CommonActuatorController {
-
-    public static final String SELF = NetworkUtil.getHostname();
-    public static final String CONTEXT_PATH = "onap/httpparticipant";
-    public static final String ACTUATOR_ENDPOINT = CONTEXT_PATH + "/actuator/";
-
-    private static String httpPrefix;
-
-    /**
-     * Sends a request to an actuator endpoint.
-     *
-     * @param endpoint the target endpoint
-     * @return a request builder
-     * @throws Exception if an error occurs
-     */
-    protected Invocation.Builder sendActRequest(final String endpoint) throws Exception {
-        return sendFqeRequest(httpPrefix + ACTUATOR_ENDPOINT + endpoint, true);
-    }
-
-    /**
-     * Sends a request to an actuator endpoint, without any authorization header.
-     *
-     * @param endpoint the target endpoint
-     * @return a request builder
-     * @throws Exception if an error occurs
-     */
-    protected Invocation.Builder sendNoAuthActRequest(final String endpoint) throws Exception {
-        return sendFqeRequest(httpPrefix + ACTUATOR_ENDPOINT + endpoint, false);
-    }
-
-    /**
-     * Sends a request to a fully qualified endpoint.
-     *
-     * @param fullyQualifiedEndpoint the fully qualified target endpoint
-     * @param includeAuth if authorization header should be included
-     * @return a request builder
-     * @throws Exception if an error occurs
-     */
-    protected Invocation.Builder sendFqeRequest(final String fullyQualifiedEndpoint, boolean includeAuth)
-            throws Exception {
-        final Client client = ClientBuilder.newBuilder().build();
-
-        client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true");
-        client.register(GsonMessageBodyHandler.class);
-
-        if (includeAuth) {
-            client.register(HttpAuthenticationFeature.basic("participantUser", "zb!XztG34"));
-        }
-
-        final WebTarget webTarget = client.target(fullyQualifiedEndpoint);
-
-        return webTarget.request(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN);
-    }
-
-    /**
-     * Assert that GET call to actuator endpoint is Unauthorized.
-     *
-     * @param endPoint the endpoint
-     * @throws Exception if an error occurs
-     */
-    protected void assertUnauthorizedActGet(final String endPoint) throws Exception {
-        Response rawresp = sendNoAuthActRequest(endPoint).buildGet().invoke();
-        assertEquals(Response.Status.UNAUTHORIZED.getStatusCode(), rawresp.getStatus());
-    }
-
-    /**
-     * Set Up httpPrefix.
-     *
-     * @param port the port
-     */
-    protected void setHttpPrefix(int port) {
-        httpPrefix = "http://" + SELF + ":" + port + "/";
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/CommonTestData.java b/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/CommonTestData.java
deleted file mode 100644
index 1f92a86..0000000
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/utils/CommonTestData.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.http.utils;
-
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.ConfigurationEntity;
-import org.onap.policy.clamp.controlloop.participant.http.main.models.RestParams;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-public class CommonTestData {
-
-    private static final String TEST_KEY_NAME = "org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement";
-
-
-    /**
-     * Get a controlLoop Element.
-     * @return controlLoopElement object
-     */
-    public ControlLoopElement getControlLoopElement() {
-        ControlLoopElement element = new ControlLoopElement();
-        element.setId(UUID.randomUUID());
-        element.setDefinition(new ToscaConceptIdentifier(TEST_KEY_NAME, "1.0.1"));
-        element.setOrderedState(ControlLoopOrderedState.PASSIVE);
-        return element;
-    }
-
-    /**
-     * Get query params.
-     * @return Map of query params
-     */
-    public Map<String, String> getQueryParams() {
-        return Map.of("name", "dummy", "version", "1.0");
-    }
-
-    /**
-     * Get path params.
-     * @return Map of path params
-     */
-    public Map<String, Object> getPathParams() {
-        return Map.of("id", "123", "name", "dummy");
-    }
-
-    /**
-     * Rest params with GET request.
-     * @return RestParams obj
-     */
-    public RestParams restParamsWithGet() {
-        return new RestParams(
-            new ToscaConceptIdentifier("getRequest", "1.0"),
-            "GET",
-            "get",
-            200,
-            null,
-            getQueryParams(),
-            null
-        );
-    }
-
-    /**
-     * Rest params with POST request.
-     * @return RestParams obj
-     */
-    public RestParams restParamsWithPost() {
-        return new RestParams(
-            new ToscaConceptIdentifier("postRequest", "1.0"),
-            "POST",
-            "post",
-            200,
-            null,
-            getQueryParams(),
-            "Test body"
-        );
-    }
-
-    /**
-     * Rest params with POST request.
-     * @return RestParams obj
-     */
-    public RestParams restParamsWithInvalidPost() {
-        return new RestParams(
-            new ToscaConceptIdentifier("postRequest", "1.0"),
-            "POST",
-            "post/{id}/{name}",
-            200,
-            getPathParams(),
-            getQueryParams(),
-            "Test body"
-        );
-    }
-
-    /**
-     * Get invalid configuration entity.
-     * @return ConfigurationEntity obj
-     */
-    public ConfigurationEntity getInvalidConfigurationEntity() {
-        return new ConfigurationEntity(
-            new ToscaConceptIdentifier("config1", "1.0.1"),
-            List.of(restParamsWithGet(), restParamsWithInvalidPost())
-        );
-    }
-
-    /**
-     * Get configuration entity.
-     * @return ConfigurationEntity obj
-     */
-    public ConfigurationEntity getConfigurationEntity() {
-        return new ConfigurationEntity(
-            new ToscaConceptIdentifier("config1", "1.0.1"),
-            List.of(restParamsWithGet(), restParamsWithPost())
-        );
-    }
-
-    /**
-     * Get controlloop id.
-     * @return ToscaConceptIdentifier controlLoopId
-     */
-    public ToscaConceptIdentifier getControlLoopId() {
-        return new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
-    }
-
-    /**
-     * Get headers for config request.
-     * @return Map of headers
-     */
-    public Map<String, String> getHeaders() {
-        return  Map.of("Content-Type", "application/json", "Accept", "application/json");
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml b/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml
index f221bcb..57c6e40 100644
--- a/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml
+++ b/participant/participant-impl/participant-impl-http/src/test/resources/HttpParticipantConfig.yaml
@@ -27,7 +27,7 @@
         type: string
         required: true
 
-  org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest:
+  org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest:
     version: 1.0.0
     derived_from: tosca.datatypes.Root
     properties:
@@ -56,7 +56,7 @@
         constraints:
           - in_range: [100, 599]
         description: THe expected HTTP status code for the REST request
-    org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.ConfigurationEntity:
+    org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity:
       version: 1.0.0
       derived_from: tosca.datatypes.Root
       properties:
@@ -64,24 +64,24 @@
           type:  onap.datatypes.ToscaConceptIdentifier
           typeVersion: 1.0.0
           required: true
-          description: The name and version of a Configuration Entity to be handled by the HTTP Control Loop Element
+          description: The name and version of a Configuration Entity to be handled by the HTTP Automation Composition Element
         restSequence:
           type: list
           entry_schema:
-            type: org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest
+            type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.RestRequest
             typeVersion: 1.0.0
           description: A sequence of REST commands to send to the REST endpoint
 
 
 node_types:
-  org.onap.policy.clamp.controlloop.Participant:
+  org.onap.policy.clamp.acm.Participant:
     version: 1.0.1
     derived_from: tosca.nodetypes.Root
     properties:
       provider:
         type: string
         requred: false
-  org.onap.policy.clamp.controlloop.ControlLoopElement:
+  org.onap.policy.clamp.acm.AutomationCompositionElement:
     version: 1.0.1
     derived_from: tosca.nodetypes.Root
     properties:
@@ -98,11 +98,11 @@
         - greater-or-equal: 0
         metadata:
             common: true
-        description: A value indicating the start phase in which this control loop element will be started, the
-                     first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
-                     in reverse start phase order. Control Loop Elements with the same start phase are started and
+        description: A value indicating the start phase in which this automation composition element will be started, the
+                     first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped
+                     in reverse start phase order. Automation Composition Elements with the same start phase are started and
                      stopped simultaneously
-  org.onap.policy.clamp.controlloop.ControlLoop:
+  org.onap.policy.clamp.acm.AutomationComposition:
     version: 1.0.1
     derived_from: tosca.nodetypes.Root
     properties:
@@ -114,9 +114,9 @@
         required: true
         entry_schema:
           type: onap.datatypes.ToscaConceptIdentifier
-  org.onap.policy.clamp.controlloop.HttpControlLoopElement:
+  org.onap.policy.clamp.acm.HttpAutomationCompositionElement:
     version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
     properties:
       baseUrl:
         type: string
@@ -132,29 +132,29 @@
         type: map
         required: true
         entry_schema:
-          type: org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.ConfigurationEntity
+          type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity
           typeVersion: 1.0.0
-        description: The connfiguration entities the Control Loop Element is managing and their associated REST requests
+        description: The connfiguration entities the Automation Composition Element is managing and their associated REST requests
 topology_template:
   node_templates:
-    org.onap.k8s.controlloop.HttpControlLoopParticipant:
+    org.onap.k8s.acm.HttpAutomationCompositionParticipant:
       version: 2.3.4
-      type: org.onap.policy.clamp.controlloop.Participant
+      type: org.onap.policy.clamp.acm.Participant
       type_version: 1.0.1
       description: Participant for Http requests
       properties:
         provider: ONAP
 
-    org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement:
+    org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement:
       # Http config for PMSH.
       version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.HttpControlLoopElement
+      type: org.onap.policy.clamp.acm.HttpAutomationCompositionElement
       type_version: 1.0.1
-      description: Control loop element for the http requests of PMSH microservice
+      description: Automation composition element for the http requests of PMSH microservice
       properties:
         provider: ONAP
         participantType:
-          name: org.onap.controlloop.HttpControlLoopParticipant
+          name: org.onap.acm.HttpAutomationCompositionParticipant
           version: 2.3.4
         startPhase: 1
         uninitializedToPassiveTimeout: 180
@@ -208,13 +208,13 @@
                 expectedResponse: 200
 
 
-    org.onap.domain.sample.GenericK8s_ControlLoopDefinition:
+    org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition:
       version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoop
+      type: org.onap.policy.clamp.acm.AutomationComposition
       type_version: 1.0.0
-      description: Control loop for HTTP request
+      description: Automation composition for HTTP request
       properties:
         provider: ONAP
         elements:
-          - name: org.onap.domain.database.Http_PMSHMicroserviceControlLoopElement
+          - name: org.onap.domain.database.Http_PMSHMicroserviceAutomationCompositionElement
             version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties b/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties
index 698a965..e9f3b37 100644
--- a/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties
+++ b/participant/participant-impl/participant-impl-http/src/test/resources/application_test.properties
@@ -1,24 +1,24 @@
 spring.security.user.name=participantUser
 spring.security.user.password=zb!XztG34
 
-server.servlet.context-path=/onap/httpparticipant
+server.servlet.context-path=/onap/policy/clamp/acm/httpparticipant
 server.error.path=/error
 server.http-port=8084
 
-participant.name=ControlLoopParticipant Http Test
+participant.name=AutomationCompositionParticipant Http Test
 participant.intermediaryParameters.name=Participant parameters
 participant.intermediaryParameters.reportingTimeInterval=120000
 participant.intermediaryParameters.description=Participant Description
 participant.intermediaryParameters.participantId.name=HttpParticipant0
 participant.intermediaryParameters.participantId.version=1.0.0
-participant.intermediaryParameters.participantType.name=org.onap.k8s.controlloop.HttpControlLoopParticipant
+participant.intermediaryParameters.participantType.name=org.onap.clamp.acm.HttpParticipant
 participant.intermediaryParameters.participantType.version=2.3.4
-participant.intermediaryParameters.clampControlLoopTopics.name=ControlLoop Topics
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topicCommInfrastructure=dmaap
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].fetchTimeout=15000
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.name=AutomationComposition Topics
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].fetchTimeout=15000
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topicCommInfrastructure=dmaap
 management.endpoints.web.exposure.include=health,metrics,prometheus
diff --git a/participant/participant-impl/participant-impl-kubernetes/pom.xml b/participant/participant-impl/participant-impl-kubernetes/pom.xml
index 6bbf017..e92021b 100644
--- a/participant/participant-impl/participant-impl-kubernetes/pom.xml
+++ b/participant/participant-impl/participant-impl-kubernetes/pom.xml
@@ -30,7 +30,7 @@
 
     <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
     <name>${project.artifactId}</name>
-    <description>Kubernetes participant, that allows k8s pods to partake in control loops</description>
+    <description>Kubernetes participant, that allows k8s pods to partake in automation compositions</description>
 
     <!-- Dependency added here to take precedence over Mockito-core in parent pom-->
     <dependencies>
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/Application.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/Application.java
similarity index 81%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/Application.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/Application.java
index 5d9d203..6908b27 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/Application.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/Application.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes;
+package org.onap.policy.clamp.acm.participant.kubernetes;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -29,10 +29,14 @@
  * Starter.
  *
  */
+// @formatter:off
 @SpringBootApplication
-@ComponentScan({"org.onap.policy.clamp.controlloop.participant.kubernetes",
-    "org.onap.policy.clamp.controlloop.participant.intermediary"})
-@ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.participant.kubernetes.parameters")
+@ComponentScan({
+    "org.onap.policy.clamp.acm.participant.kubernetes",
+    "org.onap.policy.clamp.acm.participant.intermediary"
+})
+@ConfigurationPropertiesScan("org.onap.policy.clamp.acm.participant.kubernetes.parameters")
+//@formatter:on
 public class Application {
     /**
      * Main class.
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/ParticipantConfig.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/ParticipantConfig.java
similarity index 95%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/ParticipantConfig.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/ParticipantConfig.java
index 54627d5..428819b 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/ParticipantConfig.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/ParticipantConfig.java
@@ -18,7 +18,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.configurations;
+package org.onap.policy.clamp.acm.participant.kubernetes.configurations;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/ParticipantIntermediaryConfig.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/ParticipantIntermediaryConfig.java
similarity index 62%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/ParticipantIntermediaryConfig.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/ParticipantIntermediaryConfig.java
index bfbed66..878b43f 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/ParticipantIntermediaryConfig.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/ParticipantIntermediaryConfig.java
@@ -18,10 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.configurations;
+package org.onap.policy.clamp.acm.participant.kubernetes.configurations;
 
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.handler.ControlLoopElementHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.kubernetes.handler.AutomationCompositionElementHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 
@@ -29,15 +29,15 @@
 public class ParticipantIntermediaryConfig {
 
     /**
-     * Register ControlLoopElementListener.
+     * Register AutomationCompositionElementListener.
      *
      * @param intermediaryApi the ParticipantIntermediaryApi
-     * @param clElementHandler the ControlLoop Element Handler
+     * @param acElementHandler the AutomationComposition Element Handler
      */
     @Autowired
-    public void registerControlLoopElementListener(ParticipantIntermediaryApi intermediaryApi,
-            ControlLoopElementHandler clElementHandler) {
-        intermediaryApi.registerControlLoopElementListener(clElementHandler);
-        clElementHandler.setIntermediaryApi(intermediaryApi);
+    public void registerAutomationCompositionElementListener(ParticipantIntermediaryApi intermediaryApi,
+            AutomationCompositionElementHandler acElementHandler) {
+        intermediaryApi.registerAutomationCompositionElementListener(acElementHandler);
+        acElementHandler.setIntermediaryApi(intermediaryApi);
     }
 }
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/SecurityConfig.java
similarity index 95%
copy from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java
copy to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/SecurityConfig.java
index 499bbe1..da5762b 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/SecurityConfig.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.config;
+package org.onap.policy.clamp.acm.participant.kubernetes.configurations;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Configuration;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/SpringFoxConfig.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/SpringFoxConfig.java
similarity index 90%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/SpringFoxConfig.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/SpringFoxConfig.java
index 09a4977..cfa98bd 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/SpringFoxConfig.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/configurations/SpringFoxConfig.java
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.configurations;
+package org.onap.policy.clamp.acm.participant.kubernetes.configurations;
 
-import org.onap.policy.clamp.controlloop.participant.kubernetes.controller.ChartController;
+import org.onap.policy.clamp.acm.participant.kubernetes.controller.ChartController;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import springfox.documentation.builders.PathSelectors;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java
similarity index 92%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java
index e2ccda4..19ab4bb 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/controller/ChartController.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.controller;
+package org.onap.policy.clamp.acm.participant.kubernetes.controller;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,12 +24,12 @@
 import io.swagger.annotations.ApiResponses;
 import java.io.IOException;
 import java.util.ArrayList;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.HelmRepository;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.InstallationInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.service.ChartService;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.HelmRepository;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.InstallationInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.service.ChartService;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/exception/ServiceException.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/exception/ServiceException.java
similarity index 93%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/exception/ServiceException.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/exception/ServiceException.java
index 9a825cf..6414f2f 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/exception/ServiceException.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/exception/ServiceException.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.exception;
+package org.onap.policy.clamp.acm.participant.kubernetes.exception;
 
 public class ServiceException extends Exception {
 
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/handler/AutomationCompositionElementHandler.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/handler/AutomationCompositionElementHandler.java
new file mode 100644
index 0000000..7536086
--- /dev/null
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/handler/AutomationCompositionElementHandler.java
@@ -0,0 +1,197 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021-2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.kubernetes.handler;
+
+import java.io.IOException;
+import java.lang.invoke.MethodHandles;
+import java.time.Instant;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.Setter;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.helm.PodStatusValidator;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.service.ChartService;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class handles implementation of automationCompositionElement updates.
+ */
+@Component
+public class AutomationCompositionElementHandler implements AutomationCompositionElementListener {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+    private ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
+
+    // Map of helm installation and the status of corresponding pods
+    @Getter
+    private static Map<String, Map<String, String>> podStatusMap = new ConcurrentHashMap<>();
+    private static final Coder CODER = new StandardCoder();
+
+    @Autowired
+    private ChartService chartService;
+
+    @Setter
+    private ParticipantIntermediaryApi intermediaryApi;
+
+    // Map of acElement Id and installed Helm charts
+    @Getter(AccessLevel.PACKAGE)
+    private final Map<UUID, ChartInfo> chartMap = new HashMap<>();
+
+    // Default thread config values
+    private static class ThreadConfig {
+        private int uninitializedToPassiveTimeout = 60;
+        private int podStatusCheckInterval = 30;
+    }
+
+    /**
+     * Callback method to handle a automation composition element state change.
+     *
+     * @param automationCompositionElementId the ID of the automation composition element
+     * @param currentState the current state of the automation composition element
+     * @param newState the state to which the automation composition element is changing to
+     */
+    @Override
+    public synchronized void automationCompositionElementStateChange(ToscaConceptIdentifier automationCompositionId,
+        UUID automationCompositionElementId, AutomationCompositionState currentState,
+        AutomationCompositionOrderedState newState) {
+        switch (newState) {
+            case UNINITIALISED:
+                ChartInfo chart = chartMap.get(automationCompositionElementId);
+                if (chart != null) {
+                    LOGGER.info("Helm deployment to be deleted {} ", chart.getReleaseName());
+                    try {
+                        chartService.uninstallChart(chart);
+                        intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                            automationCompositionElementId, newState, AutomationCompositionState.UNINITIALISED,
+                            ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                        chartMap.remove(automationCompositionElementId);
+                        podStatusMap.remove(chart.getReleaseName());
+                    } catch (ServiceException se) {
+                        LOGGER.warn("Deletion of Helm deployment failed", se);
+                    }
+                }
+                break;
+            case PASSIVE:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.PASSIVE,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            case RUNNING:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.RUNNING,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            default:
+                LOGGER.warn("Cannot transition from state {} to state {}", currentState, newState);
+                break;
+        }
+    }
+
+    /**
+     * Callback method to handle an update on a automation composition element.
+     *
+     * @param element the information on the automation composition element
+     * @param nodeTemplate toscaNodeTemplate
+     * @throws PfModelException in case of an exception
+     */
+    @Override
+    public synchronized void automationCompositionElementUpdate(ToscaConceptIdentifier automationCompositionId,
+        AutomationCompositionElement element, ToscaNodeTemplate nodeTemplate) throws PfModelException {
+        @SuppressWarnings("unchecked")
+        Map<String, Object> chartData = (Map<String, Object>) nodeTemplate.getProperties().get("chart");
+
+        LOGGER.info("Installation request received for the Helm Chart {} ", chartData);
+        try {
+            var chartInfo = CODER.convert(chartData, ChartInfo.class);
+            chartService.installChart(chartInfo);
+            chartMap.put(element.getId(), chartInfo);
+
+            var config = CODER.convert(nodeTemplate.getProperties(), ThreadConfig.class);
+            checkPodStatus(automationCompositionId, element.getId(), chartInfo, config.uninitializedToPassiveTimeout,
+                    config.podStatusCheckInterval);
+
+        } catch (ServiceException | CoderException | IOException | ExecutionException
+                | InterruptedException e) {
+            LOGGER.warn("Installation of Helm chart failed", e);
+        }
+    }
+
+    /**
+     * Invoke a new thread to check the status of deployed pods.
+     *
+     * @param chart ChartInfo
+     */
+    public void checkPodStatus(ToscaConceptIdentifier controlLoopId, UUID elementId,
+            ChartInfo chart, int timeout, int podStatusCheckInterval) throws ExecutionException, InterruptedException {
+        // Invoke runnable thread to check pod status
+        Future<String> result = executor.submit(new PodStatusValidator(chart, timeout,
+                podStatusCheckInterval), "Done");
+        if (!result.get().isEmpty()) {
+            LOGGER.info("Pod Status Validator Completed: {}", result.isDone());
+            intermediaryApi.updateAutomationCompositionElementState(controlLoopId, elementId,
+                AutomationCompositionOrderedState.PASSIVE, AutomationCompositionState.PASSIVE,
+                ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+        }
+    }
+
+    /**
+     * Overridden method.
+     *
+     * @param automationCompositionElementId automationCompositionElement id
+     * @throws PfModelException in case of error
+     */
+    @Override
+    public synchronized void handleStatistics(UUID automationCompositionElementId) throws PfModelException {
+        var acElement = intermediaryApi.getAutomationCompositionElement(automationCompositionElementId);
+        if (acElement != null) {
+            var acElementStatistics = new AcElementStatistics();
+            acElementStatistics.setState(acElement.getState());
+            acElementStatistics.setTimeStamp(Instant.now());
+            intermediaryApi.updateAutomationCompositionElementStatistics(automationCompositionElementId,
+                acElementStatistics);
+        }
+    }
+}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/HelmClient.java
similarity index 95%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/HelmClient.java
index 6133c7e..8719968 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClient.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/HelmClient.java
@@ -18,7 +18,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.helm;
+package org.onap.policy.clamp.acm.participant.kubernetes.helm;
 
 import java.io.File;
 import java.io.IOException;
@@ -28,10 +28,10 @@
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.io.IOUtils;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.HelmRepository;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.service.ChartStore;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.HelmRepository;
+import org.onap.policy.clamp.acm.participant.kubernetes.service.ChartStore;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/PodStatusValidator.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/PodStatusValidator.java
similarity index 88%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/PodStatusValidator.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/PodStatusValidator.java
index d55fd66..f8b08a6 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/PodStatusValidator.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/PodStatusValidator.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.helm;
+package org.onap.policy.clamp.acm.participant.kubernetes.helm;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -27,9 +27,9 @@
 import java.util.Map;
 import lombok.SneakyThrows;
 import org.apache.commons.io.IOUtils;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.handler.ControlLoopElementHandler;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.handler.AutomationCompositionElementHandler;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -77,12 +77,12 @@
                 if (! isVerified) {
                     logger.info("Waiting for the pods to be active for the chart {}", chart.getChartId().getName());
                     podStatusMap.forEach((key, value) -> logger.info("Pod: {} , state: {}", key, value));
-                    ControlLoopElementHandler.getPodStatusMap().put(chart.getReleaseName(), podStatusMap);
+                    AutomationCompositionElementHandler.getPodStatusMap().put(chart.getReleaseName(), podStatusMap);
                     // Recheck status of pods in specific intervals.
                     Thread.sleep(statusCheckInterval * 1000L);
                 } else {
                     logger.info("All pods are in running state for the helm chart {}", chart.getChartId().getName());
-                    ControlLoopElementHandler.getPodStatusMap().put(chart.getReleaseName(), podStatusMap);
+                    AutomationCompositionElementHandler.getPodStatusMap().put(chart.getReleaseName(), podStatusMap);
                 }
             } catch (ServiceException | IOException  e) {
                 throw new ServiceException("Error verifying the status of the pod. Exiting", e);
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/ChartInfo.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/ChartInfo.java
similarity index 94%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/ChartInfo.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/ChartInfo.java
index 5cbc203..b925e78 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/ChartInfo.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/ChartInfo.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.models;
+package org.onap.policy.clamp.acm.participant.kubernetes.models;
 
 import java.util.Map;
 import lombok.Data;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/ChartList.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/ChartList.java
similarity index 93%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/ChartList.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/ChartList.java
index 7f46bbd..951bdaa 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/ChartList.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/ChartList.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.models;
+package org.onap.policy.clamp.acm.participant.kubernetes.models;
 
 import java.util.List;
 import lombok.Builder;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/HelmRepository.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/HelmRepository.java
similarity index 93%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/HelmRepository.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/HelmRepository.java
index a495c7b..2e25e42 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/HelmRepository.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/HelmRepository.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.models;
+package org.onap.policy.clamp.acm.participant.kubernetes.models;
 
 import lombok.Builder;
 import lombok.Data;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/InstallationInfo.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/InstallationInfo.java
similarity index 93%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/InstallationInfo.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/InstallationInfo.java
index b21e93a..6ef6865 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/models/InstallationInfo.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/models/InstallationInfo.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.models;
+package org.onap.policy.clamp.acm.participant.kubernetes.models;
 
 import lombok.Getter;
 import org.immutables.gson.Gson;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/ParticipantK8sParameters.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/ParticipantK8sParameters.java
similarity index 84%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/ParticipantK8sParameters.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/ParticipantK8sParameters.java
index 3b2b373..b95756e 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/ParticipantK8sParameters.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/ParticipantK8sParameters.java
@@ -18,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.parameters;
+package org.onap.policy.clamp.acm.participant.kubernetes.parameters;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.validation.annotation.Validated;
 
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartService.java
similarity index 91%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartService.java
index a07fca5..344d161 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartService.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartService.java
@@ -16,15 +16,15 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.service;
+package org.onap.policy.clamp.acm.participant.kubernetes.service;
 
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.Collection;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.helm.HelmClient;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.HelmRepository;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.helm.HelmClient;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.HelmRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartStore.java
similarity index 95%
rename from participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java
rename to participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartStore.java
index ed53d03..52c1b1f 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStore.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartStore.java
@@ -18,7 +18,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.service;
+package org.onap.policy.clamp.acm.participant.kubernetes.service;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -37,9 +37,9 @@
 import java.util.concurrent.ConcurrentHashMap;
 import lombok.AccessLevel;
 import lombok.Getter;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.parameters.ParticipantK8sParameters;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.parameters.ParticipantK8sParameters;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/SecurityConfig.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/SecurityConfig.java
deleted file mode 100644
index 6b4fb0a..0000000
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/configurations/SecurityConfig.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * Copyright (C) 2021 Nordix Foundation. All rights reserved.
- * ======================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.kubernetes.configurations;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-
-@Configuration
-public class SecurityConfig extends WebSecurityConfigurerAdapter {
-
-    @Value("${security.enable-csrf:true}")
-    private boolean csrfEnabled = true;
-
-    @Override
-    protected void configure(HttpSecurity http) throws Exception {
-        // @formatter:off
-        http.authorizeRequests()
-            .antMatchers().authenticated()
-            .anyRequest().authenticated()
-            .and().httpBasic();
-        // @formatter:on
-
-        if (!csrfEnabled) {
-            http.csrf().disable();
-        }
-    }
-}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/handler/ControlLoopElementHandler.java
deleted file mode 100644
index a8a7462..0000000
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/controlloop/participant/kubernetes/handler/ControlLoopElementHandler.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021-2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.kubernetes.handler;
-
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.time.Instant;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import lombok.AccessLevel;
-import lombok.Getter;
-import lombok.Setter;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.helm.PodStatusValidator;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.service.ChartService;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * This class handles implementation of controlLoopElement updates.
- */
-@Component
-public class ControlLoopElementHandler implements ControlLoopElementListener {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
-    private ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
-
-    // Map of helm installation and the status of corresponding pods
-    @Getter
-    private static Map<String, Map<String, String>> podStatusMap = new ConcurrentHashMap<>();
-    private static final Coder CODER = new StandardCoder();
-
-    @Autowired
-    private ChartService chartService;
-
-    @Setter
-    private ParticipantIntermediaryApi intermediaryApi;
-
-    // Map of CLElement Id and installed Helm charts
-    @Getter(AccessLevel.PACKAGE)
-    private final Map<UUID, ChartInfo> chartMap = new HashMap<>();
-
-    // Default thread config values
-    private static class ThreadConfig {
-        private int uninitializedToPassiveTimeout = 60;
-        private int podStatusCheckInterval = 30;
-    }
-
-    /**
-     * Callback method to handle a control loop element state change.
-     *
-     * @param controlLoopElementId the ID of the control loop element
-     * @param currentState the current state of the control loop element
-     * @param newState the state to which the control loop element is changing to
-     */
-    @Override
-    public synchronized void controlLoopElementStateChange(ToscaConceptIdentifier controlLoopId,
-            UUID controlLoopElementId, ControlLoopState currentState, ControlLoopOrderedState newState) {
-        switch (newState) {
-            case UNINITIALISED:
-                ChartInfo chart = chartMap.get(controlLoopElementId);
-                if (chart != null) {
-                    LOGGER.info("Helm deployment to be deleted {} ", chart.getReleaseName());
-                    try {
-                        chartService.uninstallChart(chart);
-                        intermediaryApi.updateControlLoopElementState(controlLoopId,
-                            controlLoopElementId, newState, ControlLoopState.UNINITIALISED,
-                            ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                        chartMap.remove(controlLoopElementId);
-                        podStatusMap.remove(chart.getReleaseName());
-                    } catch (ServiceException se) {
-                        LOGGER.warn("Deletion of Helm deployment failed", se);
-                    }
-                }
-                break;
-            case PASSIVE:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                    controlLoopElementId, newState, ControlLoopState.PASSIVE,
-                    ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            case RUNNING:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                    controlLoopElementId, newState, ControlLoopState.RUNNING,
-                    ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            default:
-                LOGGER.warn("Cannot transition from state {} to state {}", currentState, newState);
-                break;
-        }
-    }
-
-
-    /**
-     * Callback method to handle an update on a control loop element.
-     *
-     * @param element the information on the control loop element
-     * @param nodeTemplate toscaNodeTemplate
-     * @throws PfModelException in case of an exception
-     */
-    @Override
-    public synchronized void controlLoopElementUpdate(ToscaConceptIdentifier controlLoopId,
-            ControlLoopElement element, ToscaNodeTemplate nodeTemplate) throws PfModelException {
-        @SuppressWarnings("unchecked")
-        Map<String, Object> chartData =
-            (Map<String, Object>) nodeTemplate.getProperties().get("chart");
-
-        LOGGER.info("Installation request received for the Helm Chart {} ", chartData);
-        try {
-            var chartInfo =  CODER.convert(chartData, ChartInfo.class);
-            chartService.installChart(chartInfo);
-            chartMap.put(element.getId(), chartInfo);
-
-            var config = CODER.convert(nodeTemplate.getProperties(), ThreadConfig.class);
-            checkPodStatus(controlLoopId, element.getId(), chartInfo, config.uninitializedToPassiveTimeout,
-                    config.podStatusCheckInterval);
-
-        } catch (ServiceException | CoderException | IOException | ExecutionException
-                | InterruptedException e) {
-            LOGGER.warn("Installation of Helm chart failed", e);
-        }
-    }
-
-    /**
-     * Invoke a new thread to check the status of deployed pods.
-     * @param chart ChartInfo
-     */
-    public void checkPodStatus(ToscaConceptIdentifier controlLoopId, UUID elementId,
-            ChartInfo chart, int timeout, int podStatusCheckInterval) throws ExecutionException, InterruptedException {
-        // Invoke runnable thread to check pod status
-        Future<String> result = executor.submit(new PodStatusValidator(chart, timeout,
-                podStatusCheckInterval), "Done");
-        if (!result.get().isEmpty()) {
-            LOGGER.info("Pod Status Validator Completed: {}", result.isDone());
-            intermediaryApi.updateControlLoopElementState(controlLoopId, elementId,
-                ControlLoopOrderedState.PASSIVE, ControlLoopState.PASSIVE,
-                ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-        }
-    }
-
-    /**
-     * Overridden method.
-     *
-     * @param controlLoopElementId controlLoopElement id
-     * @throws PfModelException in case of error
-     */
-    @Override
-    public synchronized void handleStatistics(UUID controlLoopElementId) throws PfModelException {
-        var clElement = intermediaryApi.getControlLoopElement(controlLoopElementId);
-        if (clElement != null) {
-            var clElementStatistics = new ClElementStatistics();
-            clElementStatistics.setControlLoopState(clElement.getState());
-            clElementStatistics.setTimeStamp(Instant.now());
-            intermediaryApi.updateControlLoopElementStatistics(controlLoopElementId, clElementStatistics);
-        }
-    }
-}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml b/participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml
index b266fe3..3be0fb2 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml
@@ -13,22 +13,22 @@
     reportingTimeIntervalMs: 120000
     description: Participant Description
     participantId:
-      name: K8sParticipant0
-      version: 1.0.0
-    participantType:
-      name: org.onap.k8s.controlloop.K8sControlLoopParticipant
+      name: org.onap.policy.clamp.acm.KubernetesParticipant
       version: 2.3.4
-    clampControlLoopTopics:
+    participantType:
+      name: org.onap.k8s.acm.K8SAutomationCompositionParticipant
+      version: 2.3.4
+    clampAutomationCompositionTopics:
       topicSources:
         -
-          topic: POLICY-CLRUNTIME-PARTICIPANT
+          topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:localhost}
           topicCommInfrastructure: dmaap
           fetchTimeout: 15000
       topicSinks:
         -
-          topic: POLICY-CLRUNTIME-PARTICIPANT
+          topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:localhost}
           topicCommInfrastructure: dmaap
@@ -41,7 +41,7 @@
 server:
   port: 8083
   servlet:
-    context-path: /onap/k8sparticipant
+    context-path: /onap/policy/clamp/acm/k8sparticipant
 
 logging:
   # Configuration of logging
@@ -50,7 +50,7 @@
     org.springframework: ERROR
     org.springframework.data: ERROR
     org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
-    org.onap.policy.clamp.controlloop.participant.kubernetes: INFO
+    org.onap.policy.clamp.acm.participant.kubernetes: INFO
 
   file:
     name: /var/log/onap/policy/clamp/application.log
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/handler/AutomationCompositionElementHandlerTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/handler/AutomationCompositionElementHandlerTest.java
new file mode 100644
index 0000000..dc74afc
--- /dev/null
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/handler/AutomationCompositionElementHandlerTest.java
@@ -0,0 +1,182 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.kubernetes.handler;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.parameters.CommonTestData;
+import org.onap.policy.clamp.acm.participant.kubernetes.service.ChartService;
+import org.onap.policy.clamp.acm.participant.kubernetes.utils.TestUtils;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ExtendWith(SpringExtension.class)
+class AutomationCompositionElementHandlerTest {
+
+    private static final Coder CODER = new StandardCoder();
+    private static final String CHART_INFO_YAML = "src/test/resources/ChartList.json";
+    private static final String KEY_NAME =
+        "org.onap.domain.database.HelloWorld_K8SMicroserviceAutomationCompositionElement";
+    private static List<ChartInfo> charts;
+    private static ToscaServiceTemplate toscaServiceTemplate;
+    private static final String K8S_AUTOMATION_COMPOSITION_ELEMENT =
+        "org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement";
+    private CommonTestData commonTestData = new CommonTestData();
+
+    @InjectMocks
+    @Spy
+    private AutomationCompositionElementHandler automationCompositionElementHandler =
+        new AutomationCompositionElementHandler();
+
+    @Mock
+    private ChartService chartService;
+
+    @Mock
+    private ParticipantIntermediaryApi participantIntermediaryApi;
+
+    @Mock
+    private ExecutorService executor;
+    @Mock
+    private Future<String> result;
+
+    @BeforeAll
+    static void init() throws CoderException {
+        charts = CODER.decode(new File(CHART_INFO_YAML), ChartList.class).getCharts();
+        toscaServiceTemplate = TestUtils.testAutomationCompositionRead();
+    }
+
+    @Test
+    void test_AutomationCompositionElementStateChange() throws ServiceException {
+        UUID automationCompositionElementId1 = UUID.randomUUID();
+        UUID automationCompositionElementId2 = UUID.randomUUID();
+
+        automationCompositionElementHandler.getChartMap().put(automationCompositionElementId1, charts.get(0));
+        automationCompositionElementHandler.getChartMap().put(automationCompositionElementId2, charts.get(1));
+
+        doNothing().when(chartService).uninstallChart(charts.get(0));
+
+        automationCompositionElementHandler.automationCompositionElementStateChange(
+            commonTestData.getAutomationCompositionId(), automationCompositionElementId1,
+            AutomationCompositionState.PASSIVE, AutomationCompositionOrderedState.UNINITIALISED);
+
+        doThrow(new ServiceException("Error uninstalling the chart")).when(chartService).uninstallChart(charts.get(0));
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementStateChange(
+            commonTestData.getAutomationCompositionId(), automationCompositionElementId1,
+            AutomationCompositionState.PASSIVE, AutomationCompositionOrderedState.PASSIVE));
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementStateChange(
+            commonTestData.getAutomationCompositionId(), automationCompositionElementId1,
+            AutomationCompositionState.PASSIVE, AutomationCompositionOrderedState.UNINITIALISED));
+
+        assertDoesNotThrow(() -> automationCompositionElementHandler.automationCompositionElementStateChange(
+            commonTestData.getAutomationCompositionId(), automationCompositionElementId1,
+            AutomationCompositionState.PASSIVE, AutomationCompositionOrderedState.RUNNING));
+
+    }
+
+    @Test
+    void test_AutomationCompositionElementUpdate() throws PfModelException, IOException, ServiceException,
+        ExecutionException, InterruptedException {
+        doNothing().when(automationCompositionElementHandler).checkPodStatus(any(), any(), any(), anyInt(), anyInt());
+        UUID elementId1 = UUID.randomUUID();
+        AutomationCompositionElement element = new AutomationCompositionElement();
+        element.setId(elementId1);
+        element.setDefinition(new ToscaConceptIdentifier(KEY_NAME, "1.0.1"));
+        element.setOrderedState(AutomationCompositionOrderedState.PASSIVE);
+
+        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+            toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+        automationCompositionElementHandler.automationCompositionElementUpdate(
+            commonTestData.getAutomationCompositionId(), element,
+            nodeTemplatesMap.get(K8S_AUTOMATION_COMPOSITION_ELEMENT));
+
+        assertThat(automationCompositionElementHandler.getChartMap()).hasSize(1).containsKey(elementId1);
+
+        doThrow(new ServiceException("Error installing the chart")).when(chartService).installChart(Mockito.any());
+
+        UUID elementId2 = UUID.randomUUID();
+        element.setId(elementId2);
+        automationCompositionElementHandler.automationCompositionElementUpdate(
+            commonTestData.getAutomationCompositionId(), element,
+            nodeTemplatesMap.get(K8S_AUTOMATION_COMPOSITION_ELEMENT));
+
+        assertThat(automationCompositionElementHandler.getChartMap().containsKey(elementId2)).isFalse();
+    }
+
+    @Test
+    void test_handleStatistics() throws PfModelException {
+        UUID elementId1 = UUID.randomUUID();
+        automationCompositionElementHandler.getChartMap().put(elementId1, charts.get(0));
+        when(participantIntermediaryApi.getAutomationCompositionElement(elementId1))
+            .thenReturn(new AutomationCompositionElement());
+        assertDoesNotThrow(() -> automationCompositionElementHandler.handleStatistics(elementId1));
+    }
+
+    @Test
+    void test_checkPodStatus() throws ExecutionException, InterruptedException {
+        doReturn(result).when(executor).submit(any(Runnable.class), any());
+        doReturn("Done").when(result).get();
+        doReturn(true).when(result).isDone();
+        var chartInfo = charts.get(0);
+        ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
+        AutomationCompositionElement element = new AutomationCompositionElement();
+        assertDoesNotThrow(
+            () -> automationCompositionElementHandler.checkPodStatus(controlLoopId, element.getId(), chartInfo,
+                1, 1));
+    }
+}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClientTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/HelmClientTest.java
similarity index 91%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClientTest.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/HelmClientTest.java
index 335dbcb..7f1943c 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/HelmClientTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/HelmClientTest.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.helm;
+package org.onap.policy.clamp.acm.participant.kubernetes.helm;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -44,11 +44,11 @@
 import org.mockito.MockedStatic;
 import org.mockito.Mockito;
 import org.mockito.Spy;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.HelmRepository;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.service.ChartStore;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.HelmRepository;
+import org.onap.policy.clamp.acm.participant.kubernetes.service.ChartStore;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/PodStatusValidatorTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/PodStatusValidatorTest.java
similarity index 81%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/PodStatusValidatorTest.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/PodStatusValidatorTest.java
index 18c32d4..89b0770 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/helm/PodStatusValidatorTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/helm/PodStatusValidatorTest.java
@@ -19,9 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.helm;
-
-
+package org.onap.policy.clamp.acm.participant.kubernetes.helm;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -39,10 +37,10 @@
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.MockedStatic;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.handler.ControlLoopElementHandler;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.handler.AutomationCompositionElementHandler;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
@@ -74,7 +72,7 @@
 
     @AfterEach
     void clearPodStatusMap() {
-        ControlLoopElementHandler.getPodStatusMap().clear();
+        AutomationCompositionElementHandler.getPodStatusMap().clear();
     }
 
     @AfterAll
@@ -89,9 +87,9 @@
         mockedClient.when(() -> HelmClient.executeCommand(any()))
             .thenReturn(runningPod);
         assertDoesNotThrow(() -> podStatusValidator.run());
-        assertThat(ControlLoopElementHandler.getPodStatusMap()).hasSize(1);
-        assertThat(ControlLoopElementHandler.getPodStatusMap()).containsKey(charts.get(0).getReleaseName());
-        assertThat(ControlLoopElementHandler.getPodStatusMap())
+        assertThat(AutomationCompositionElementHandler.getPodStatusMap()).hasSize(1);
+        assertThat(AutomationCompositionElementHandler.getPodStatusMap()).containsKey(charts.get(0).getReleaseName());
+        assertThat(AutomationCompositionElementHandler.getPodStatusMap())
             .containsValue(Map.of("HelloWorld-54777df9f8-qpzqr", "Running"));
     }
 
@@ -103,7 +101,7 @@
             .thenReturn(invalidPod);
         assertThatThrownBy(() -> podStatusValidator.run())
             .isInstanceOf(ServiceException.class).hasMessage("Error verifying the status of the pod. Exiting");
-        assertThat(ControlLoopElementHandler.getPodStatusMap()).isEmpty();
+        assertThat(AutomationCompositionElementHandler.getPodStatusMap()).isEmpty();
     }
 
 }
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/CommonTestData.java
similarity index 91%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/CommonTestData.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/CommonTestData.java
index f6ec401..13f8edc 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/CommonTestData.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/CommonTestData.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.parameters;
+package org.onap.policy.clamp.acm.participant.kubernetes.parameters;
 
 import java.util.Arrays;
 import java.util.List;
@@ -33,7 +33,7 @@
 
 public class CommonTestData {
 
-    public static final String PARTICIPANT_GROUP_NAME = "ControlLoopParticipantGroup";
+    public static final String PARTICIPANT_GROUP_NAME = "AutomationCompositionParticipantGroup";
     public static final String DESCRIPTION = "Participant description";
     public static final long TIME_INTERVAL = 2000;
     public static final List<TopicParameters> TOPIC_PARAMS = Arrays.asList(getTopicParams());
@@ -104,7 +104,7 @@
             map.put("description", DESCRIPTION);
             map.put("participantId", getParticipantId());
             map.put("participantType", getParticipantId());
-            map.put("clampControlLoopTopics", getTopicParametersMap(false));
+            map.put("clampAutomationCompositionTopics", getTopicParametersMap(false));
         }
 
         return map;
@@ -145,17 +145,17 @@
      */
     public static TopicParameters getTopicParams() {
         final TopicParameters topicParams = new TopicParameters();
-        topicParams.setTopic("POLICY-CLRUNTIME-PARTICIPANT");
+        topicParams.setTopic("POLICY-ACRUNTIME-PARTICIPANT");
         topicParams.setTopicCommInfrastructure("dmaap");
         topicParams.setServers(Arrays.asList("localhost"));
         return topicParams;
     }
 
     /**
-     * Get controlloop id.
-     * @return ToscaConceptIdentifier controlLoopId
+     * Get automation composition id.
+     * @return ToscaConceptIdentifier automationCompositionId
      */
-    public ToscaConceptIdentifier getControlLoopId() {
+    public ToscaConceptIdentifier getAutomationCompositionId() {
         return new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
     }
 }
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/ParticipantK8sParametersTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/ParticipantK8sParametersTest.java
similarity index 95%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/ParticipantK8sParametersTest.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/ParticipantK8sParametersTest.java
index f22fc71..09ea74a 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/parameters/ParticipantK8sParametersTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/parameters/ParticipantK8sParametersTest.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.parameters;
+package org.onap.policy.clamp.acm.participant.kubernetes.parameters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -43,14 +43,14 @@
     @Test
     void testParticipantK8sParameters_NullTopicSinks() {
         final ParticipantK8sParameters participantParameters = commonTestData.getParticipantK8sParameters();
-        participantParameters.getIntermediaryParameters().getClampControlLoopTopics().setTopicSinks(null);
+        participantParameters.getIntermediaryParameters().getClampAutomationCompositionTopics().setTopicSinks(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
     @Test
     void testParticipantK8sParameters_NullTopicSources() {
         final ParticipantK8sParameters participantParameters = commonTestData.getParticipantK8sParameters();
-        participantParameters.getIntermediaryParameters().getClampControlLoopTopics().setTopicSources(null);
+        participantParameters.getIntermediaryParameters().getClampAutomationCompositionTopics().setTopicSources(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/rest/ActuatorControllerTest.java
similarity index 95%
copy from participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java
copy to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/rest/ActuatorControllerTest.java
index 8efff8f..8d05d2b 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/rest/ActuatorControllerTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.rest;
+package org.onap.policy.clamp.acm.participant.kubernetes.rest;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -27,7 +27,7 @@
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.participant.http.utils.CommonActuatorController;
+import org.onap.policy.clamp.acm.participant.kubernetes.utils.CommonActuatorController;
 import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/rest/ChartControllerTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/rest/ChartControllerTest.java
similarity index 94%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/rest/ChartControllerTest.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/rest/ChartControllerTest.java
index 8048b19..73c5c98 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/rest/ChartControllerTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/rest/ChartControllerTest.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.rest;
+package org.onap.policy.clamp.acm.participant.kubernetes.rest;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.mockito.Mockito.doNothing;
@@ -38,11 +38,11 @@
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.controller.ChartController;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.parameters.ParticipantK8sParameters;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.service.ChartService;
+import org.onap.policy.clamp.acm.participant.kubernetes.controller.ChartController;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.parameters.ParticipantK8sParameters;
+import org.onap.policy.clamp.acm.participant.kubernetes.service.ChartService;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartServiceTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartServiceTest.java
similarity index 93%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartServiceTest.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartServiceTest.java
index f1c8d19..f5b6093 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartServiceTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartServiceTest.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.service;
+package org.onap.policy.clamp.acm.participant.kubernetes.service;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -42,10 +42,10 @@
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.helm.HelmClient;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.helm.HelmClient;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStoreTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartStoreTest.java
similarity index 94%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStoreTest.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartStoreTest.java
index 54f1cc5..180861b 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/service/ChartStoreTest.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/service/ChartStoreTest.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.service;
+package org.onap.policy.clamp.acm.participant.kubernetes.service;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -40,10 +40,10 @@
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.junit.jupiter.MockitoSettings;
 import org.mockito.quality.Strictness;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.parameters.ParticipantK8sParameters;
+import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
+import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
+import org.onap.policy.clamp.acm.participant.kubernetes.parameters.ParticipantK8sParameters;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/CommonActuatorController.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/utils/CommonActuatorController.java
similarity index 96%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/CommonActuatorController.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/utils/CommonActuatorController.java
index 35ffbb5..e5a5be9 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/CommonActuatorController.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/utils/CommonActuatorController.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.utils;
+package org.onap.policy.clamp.acm.participant.kubernetes.utils;
 
 import static org.junit.Assert.assertEquals;
 
@@ -40,7 +40,7 @@
 public class CommonActuatorController {
 
     public static final String SELF = NetworkUtil.getHostname();
-    public static final String CONTEXT_PATH = "onap/k8sparticipant";
+    public static final String CONTEXT_PATH = "onap/policy/clamp/acm/k8sparticipant";
     public static final String ACTUATOR_ENDPOINT = CONTEXT_PATH + "/actuator/";
 
     private static String httpPrefix;
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/TestUtils.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/utils/TestUtils.java
similarity index 72%
rename from participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/TestUtils.java
rename to participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/utils/TestUtils.java
index af514f8..8f4969a 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/utils/TestUtils.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/acm/participant/kubernetes/utils/TestUtils.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.kubernetes.utils;
+package org.onap.policy.clamp.acm.participant.kubernetes.utils;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -33,15 +33,15 @@
     private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
     private static final String TOSCA_TEMPLATE_YAML = "src/test/resources/servicetemplates/KubernetesHelm.yaml";
 
-
-    public static ToscaServiceTemplate testControlLoopRead() {
-        return testControlLoopYamlSerialization(TOSCA_TEMPLATE_YAML);
+    public static ToscaServiceTemplate testAutomationCompositionRead() {
+        return testAutomationCompositionYamlSerialization(TOSCA_TEMPLATE_YAML);
     }
 
-
-    private static ToscaServiceTemplate testControlLoopYamlSerialization(String controlLoopFilePath) {
-        String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
-        ToscaServiceTemplate serviceTemplate = yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
+    private static ToscaServiceTemplate testAutomationCompositionYamlSerialization(
+        String automationCompositionFilePath) {
+        String automationCompositionString = ResourceUtils.getResourceAsString(automationCompositionFilePath);
+        ToscaServiceTemplate serviceTemplate =
+            yamlTranslator.fromYaml(automationCompositionString, ToscaServiceTemplate.class);
         return serviceTemplate;
     }
 }
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/handler/ControlLoopElementHandlerTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/handler/ControlLoopElementHandlerTest.java
deleted file mode 100644
index 805404b..0000000
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/handler/ControlLoopElementHandlerTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021-2022 Nordix Foundation.
- *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.kubernetes.handler;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.when;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.Spy;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.exception.ServiceException;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartInfo;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.models.ChartList;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.parameters.CommonTestData;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.service.ChartService;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.utils.TestUtils;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-
-@ExtendWith(SpringExtension.class)
-class ControlLoopElementHandlerTest {
-
-    private static final Coder CODER = new StandardCoder();
-    private static final String CHART_INFO_YAML = "src/test/resources/ChartList.json";
-    private static final String KEY_NAME = "org.onap.domain.database.HelloWorld_K8SMicroserviceControlLoopElement";
-    private static List<ChartInfo> charts;
-    private static ToscaServiceTemplate toscaServiceTemplate;
-    private static final String K8S_CONTROL_LOOP_ELEMENT =
-        "org.onap.domain.database.PMSH_K8SMicroserviceControlLoopElement";
-    private CommonTestData commonTestData = new CommonTestData();
-
-    @InjectMocks
-    @Spy
-    private ControlLoopElementHandler controlLoopElementHandler = new ControlLoopElementHandler();
-
-    @Mock
-    private ChartService chartService;
-
-    @Mock
-    private ParticipantIntermediaryApi participantIntermediaryApi;
-
-    @Mock
-    private ExecutorService executor;
-
-    @Mock
-    private Future<String> result;
-
-    @BeforeAll
-    static void init() throws CoderException {
-        charts = CODER.decode(new File(CHART_INFO_YAML), ChartList.class).getCharts();
-        toscaServiceTemplate = TestUtils.testControlLoopRead();
-    }
-
-
-    @Test
-    void test_ControlLoopElementStateChange() throws ServiceException {
-        UUID controlLoopElementId1 = UUID.randomUUID();
-        UUID controlLoopElementId2 = UUID.randomUUID();
-
-        controlLoopElementHandler.getChartMap().put(controlLoopElementId1, charts.get(0));
-        controlLoopElementHandler.getChartMap().put(controlLoopElementId2, charts.get(1));
-
-        doNothing().when(chartService).uninstallChart(charts.get(0));
-
-        controlLoopElementHandler.controlLoopElementStateChange(commonTestData.getControlLoopId(),
-            controlLoopElementId1, ControlLoopState.PASSIVE, ControlLoopOrderedState.UNINITIALISED);
-
-        doThrow(new ServiceException("Error uninstalling the chart")).when(chartService)
-            .uninstallChart(charts.get(0));
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-                .controlLoopElementStateChange(commonTestData.getControlLoopId(), controlLoopElementId1,
-                    ControlLoopState.PASSIVE, ControlLoopOrderedState.PASSIVE));
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-            .controlLoopElementStateChange(commonTestData.getControlLoopId(), controlLoopElementId1,
-                ControlLoopState.PASSIVE, ControlLoopOrderedState.UNINITIALISED));
-
-        assertDoesNotThrow(() -> controlLoopElementHandler
-            .controlLoopElementStateChange(commonTestData.getControlLoopId(), controlLoopElementId1,
-                ControlLoopState.PASSIVE, ControlLoopOrderedState.RUNNING));
-
-    }
-
-    @Test
-    void test_ControlLoopElementUpdate() throws PfModelException, IOException, ServiceException,
-            ExecutionException, InterruptedException {
-        doNothing().when(controlLoopElementHandler).checkPodStatus(any(), any(), any(), anyInt(), anyInt());
-        UUID elementId1 = UUID.randomUUID();
-        ControlLoopElement element = new ControlLoopElement();
-        element.setId(elementId1);
-        element.setDefinition(new ToscaConceptIdentifier(KEY_NAME, "1.0.1"));
-        element.setOrderedState(ControlLoopOrderedState.PASSIVE);
-
-        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
-                toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-        controlLoopElementHandler.controlLoopElementUpdate(commonTestData.getControlLoopId(), element,
-            nodeTemplatesMap.get(K8S_CONTROL_LOOP_ELEMENT));
-
-        assertThat(controlLoopElementHandler.getChartMap()).hasSize(1).containsKey(elementId1);
-
-        doThrow(new ServiceException("Error installing the chart")).when(chartService)
-            .installChart(Mockito.any());
-
-        UUID elementId2 = UUID.randomUUID();
-        element.setId(elementId2);
-        controlLoopElementHandler.controlLoopElementUpdate(commonTestData.getControlLoopId(), element,
-            nodeTemplatesMap.get(K8S_CONTROL_LOOP_ELEMENT));
-
-        assertThat(controlLoopElementHandler.getChartMap().containsKey(elementId2)).isFalse();
-    }
-
-    @Test
-    void test_handleStatistics() throws PfModelException {
-        UUID elementId1 = UUID.randomUUID();
-        controlLoopElementHandler.getChartMap().put(elementId1, charts.get(0));
-        when(participantIntermediaryApi.getControlLoopElement(elementId1)).thenReturn(new ControlLoopElement());
-        assertDoesNotThrow(() -> controlLoopElementHandler.handleStatistics(elementId1));
-    }
-
-    @Test
-    void test_checkPodStatus() throws ExecutionException, InterruptedException {
-        doReturn(result).when(executor).submit(any(Runnable.class), any());
-        doReturn("Done").when(result).get();
-        doReturn(true).when(result).isDone();
-        var chartInfo =  charts.get(0);
-        ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
-        ControlLoopElement element = new ControlLoopElement();
-        assertDoesNotThrow(() -> controlLoopElementHandler.checkPodStatus(controlLoopId, element.getId(), chartInfo,
-                1, 1));
-    }
-}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/rest/ActuatorControllerTest.java b/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/rest/ActuatorControllerTest.java
deleted file mode 100644
index 1442e9f..0000000
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/java/org/onap/policy/clamp/controlloop/participant/kubernetes/rest/ActuatorControllerTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.kubernetes.rest;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.participant.kubernetes.utils.CommonActuatorController;
-import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.LocalServerPort;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-@AutoConfigureMetrics
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-class ActuatorControllerTest extends CommonActuatorController {
-
-    private static final String HEALTH_ENDPOINT = "health";
-    private static final String METRICS_ENDPOINT = "metrics";
-    private static final String PROMETHEUS_ENDPOINT = "prometheus";
-
-    @LocalServerPort
-    private int randomServerPort;
-
-    @BeforeEach
-    public void setUpPort() {
-        super.setHttpPrefix(randomServerPort);
-    }
-
-    @Test
-    void testGetHealth_Unauthorized() throws Exception {
-        assertUnauthorizedActGet(HEALTH_ENDPOINT);
-    }
-
-    @Test
-    void testGetMetrics_Unauthorized() throws Exception {
-        assertUnauthorizedActGet(METRICS_ENDPOINT);
-    }
-
-    @Test
-    void testGetPrometheus_Unauthorized() throws Exception {
-        assertUnauthorizedActGet(PROMETHEUS_ENDPOINT);
-    }
-
-    @Test
-    void testGetHealth() throws Exception {
-        Invocation.Builder invocationBuilder = super.sendActRequest(HEALTH_ENDPOINT);
-        Response rawresp = invocationBuilder.buildGet().invoke();
-        assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-    }
-
-    @Test
-    void testGetMetrics() throws Exception {
-        Invocation.Builder invocationBuilder = super.sendActRequest(METRICS_ENDPOINT);
-        Response rawresp = invocationBuilder.buildGet().invoke();
-        assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-    }
-
-    @Test
-    void testGePrometheus() throws Exception {
-        Invocation.Builder invocationBuilder = super.sendActRequest(PROMETHEUS_ENDPOINT);
-        Response rawresp = invocationBuilder.buildGet().invoke();
-        assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/resources/application_test.properties b/participant/participant-impl/participant-impl-kubernetes/src/test/resources/application_test.properties
index b5b209f..2435121 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/resources/application_test.properties
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/resources/application_test.properties
@@ -1,24 +1,24 @@
 spring.security.user.name=participantUser
 spring.security.user.password=zb!XztG34
 
-server.servlet.context-path=/onap/k8sparticipant
+server.servlet.context-path=/onap/policy/clamp/acm/k8sparticipant
 server.error.path=/error
 server.http-port=8083
 
-participant.name=ControlLoopParticipant Kubernetes Test
+participant.name=AutomationCompositionParticipant Kubernetes Test
 participant.intermediaryParameters.name=Participant parameters
 participant.intermediaryParameters.reportingTimeInterval=120000
 participant.intermediaryParameters.description=Participant Description
 participant.intermediaryParameters.participantId.name=K8sParticipant0
 participant.intermediaryParameters.participantId.version=1.0.0
-participant.intermediaryParameters.participantType.name=org.onap.k8s.controlloop.K8SControlLoopParticipant
+participant.intermediaryParameters.participantType.name=org.onap.k8s.acm.K8SAutomationCompositionParticipant
 participant.intermediaryParameters.participantType.version=2.3.4
-participant.intermediaryParameters.clampControlLoopTopics.name=ControlLoop Topics
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topicCommInfrastructure=dmaap
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].fetchTimeout=15000
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.name=AutomationComposition Topics
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].fetchTimeout=15000
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topicCommInfrastructure=dmaap
 management.endpoints.web.exposure.include=health,metrics,prometheus
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/test/resources/servicetemplates/KubernetesHelm.yaml b/participant/participant-impl/participant-impl-kubernetes/src/test/resources/servicetemplates/KubernetesHelm.yaml
index 7d59401..f5eb623 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/test/resources/servicetemplates/KubernetesHelm.yaml
+++ b/participant/participant-impl/participant-impl-kubernetes/src/test/resources/servicetemplates/KubernetesHelm.yaml
@@ -27,14 +27,14 @@
         type: string
         required: true
 node_types:
-  org.onap.policy.clamp.controlloop.Participant:
+  org.onap.policy.clamp.acm.Participant:
     version: 1.0.1
     derived_from: tosca.nodetypes.Root
     properties:
       provider:
         type: string
         requred: false
-  org.onap.policy.clamp.controlloop.ControlLoopElement:
+  org.onap.policy.clamp.acm.AutomationCompositionElement:
     version: 1.0.1
     derived_from: tosca.nodetypes.Root
     properties:
@@ -51,11 +51,11 @@
         - greater-or-equal: 0
         metadata:
             common: true
-        description: A value indicating the start phase in which this control loop element will be started, the
-                     first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
-                     in reverse start phase order. Control Loop Elements with the same start phase are started and
-                     stopped simultaneously
-  org.onap.policy.clamp.controlloop.ControlLoop:
+        description: A value indicating the start phase in which this automation composition element will be started,
+                     the first start phase is zero. Automation Composition Elements are started in their start_phase
+                     order and stopped in reverse start phase order. Automation Composition Elements with the same start
+                     phase are started and stopped simultaneously
+  org.onap.policy.clamp.acm.AutomationComposition:
     version: 1.0.1
     derived_from: tosca.nodetypes.Root
     properties:
@@ -67,9 +67,9 @@
         required: true
         entry_schema:
           type: onap.datatypes.ToscaConceptIdentifier
-  org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement:
+  org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement:
     version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
     properties:
       chart:
         type: string
@@ -89,24 +89,24 @@
         requred: true
 topology_template:
   node_templates:
-    org.onap.k8s.controlloop.K8SControlLoopParticipant:
+    org.onap.k8s.acm.K8SAutomationCompositionParticipant:
       version: 2.3.4
-      type: org.onap.policy.clamp.controlloop.Participant
+      type: org.onap.policy.clamp.acm.Participant
       type_version: 1.0.1
       description: Participant for K8S
       properties:
         provider: ONAP
 
-    org.onap.domain.database.HelloWorld_K8SMicroserviceControlLoopElement:
+    org.onap.domain.database.HelloWorld_K8SMicroserviceAutomationCompositionElement:
       # Chart from any chart repository configured on helm client.
       version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement
+      type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement
       type_version: 1.0.0
-      description: Control loop element for the K8S microservice for Hello World
+      description: Automation composition element for the K8S microservice for Hello World
       properties:
         provider: ONAP
         participantType:
-          name: org.onap.k8s.controlloop.K8SControlLoopParticipant
+          name: org.onap.k8s.acm.K8SAutomationCompositionParticipant
           version: 2.3.4
         startPhase: 2
         uninitializedToPassiveTimeout: 180
@@ -119,16 +119,16 @@
           namespace: onap
           repository: chartMuseum
 
-    org.onap.domain.database.PMSH_K8SMicroserviceControlLoopElement:
+    org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement:
       # Chart from local file system
       version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement
+      type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement
       type_version: 1.0.0
-      description: Control loop element for the K8S microservice for PMSH
+      description: Automation composition element for the K8S microservice for PMSH
       properties:
         provider: ONAP
         participantType:
-          name: org.onap.k8s.controlloop.K8SControlLoopParticipant
+          name: org.onap.k8s.acm.K8SAutomationCompositionParticipant
           version: 2.3.4
         startPhase: 2
         uninitializedToPassiveTimeout: 180
@@ -142,16 +142,16 @@
           overrideParams:
             global.masterPassword: test
 
-    org.onap.domain.database.Local_K8SMicroserviceControlLoopElement:
+    org.onap.domain.database.Local_K8SMicroserviceAutomationCompositionElement:
       # Chart installation without passing repository name
       version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement
+      type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement
       type_version: 1.0.0
-      description: Control loop element for the K8S microservice for local chart
+      description: Automation composition element for the K8S microservice for local chart
       properties:
         provider: ONAP
         participantType:
-          name: org.onap.k8s.controlloop.K8SControlLoopParticipant
+          name: org.onap.k8s.acm.K8SAutomationCompositionParticipant
           version: 2.3.4
         startPhase: 2
         uninitializedToPassiveTimeout: 180
@@ -163,17 +163,17 @@
           releaseName: nginxms
           namespace: onap
 
-    org.onap.domain.sample.GenericK8s_ControlLoopDefinition:
+    org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition:
       version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoop
+      type: org.onap.policy.clamp.acm.AutomationComposition
       type_version: 1.0.0
-      description: Control loop for Hello World
+      description: Automation composition for Hello World
       properties:
         provider: ONAP
         elements:
-          - name: org.onap.domain.database.HelloWorld_K8SMicroserviceControlLoopElement
+          - name: org.onap.domain.database.HelloWorld_K8SMicroserviceAutomationCompositionElement
             version: 1.2.3
-          - name: org.onap.domain.database.PMSH_K8SMicroserviceControlLoopElement
+          - name: org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement
             version: 1.2.3
-          - name: org.onap.domain.database.Local_K8SMicroserviceControlLoopElement
+          - name: org.onap.domain.database.Local_K8SMicroserviceAutomationCompositionElement
             version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-policy/pom.xml b/participant/participant-impl/participant-impl-policy/pom.xml
index fce29ac..052e959 100644
--- a/participant/participant-impl/participant-impl-policy/pom.xml
+++ b/participant/participant-impl/participant-impl-policy/pom.xml
@@ -30,7 +30,7 @@
 
     <artifactId>policy-clamp-participant-impl-policy</artifactId>
     <name>${project.artifactId}</name>
-    <description>Policy participant, that allows Policy to partake in control loops</description>
+    <description>Policy participant, that allows Policy to partake in automation compositions</description>
 
     <build>
         <plugins>
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/PolicyParticipantApplication.java
similarity index 82%
rename from participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java
rename to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/PolicyParticipantApplication.java
index 4869b7c..0ba2aa2 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/PolicyParticipantApplication.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/PolicyParticipantApplication.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy;
+package org.onap.policy.clamp.acm.participant.policy;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -31,9 +31,10 @@
  */
 @SpringBootApplication
 @ComponentScan({
-    "org.onap.policy.clamp.controlloop.participant.policy",
-    "org.onap.policy.clamp.controlloop.participant.intermediary"})
-@ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.participant.policy.main.parameters")
+    "org.onap.policy.clamp.acm.participant.policy",
+    "org.onap.policy.clamp.acm.participant.intermediary"
+})
+@ConfigurationPropertiesScan("org.onap.policy.clamp.acm.participant.policy.main.parameters")
 public class PolicyParticipantApplication {
 
     public static void main(String[] args) {
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/AbstractHttpClient.java
similarity index 88%
rename from participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java
rename to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/AbstractHttpClient.java
index 2579585..4920d65 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/AbstractHttpClient.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/AbstractHttpClient.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.client;
+package org.onap.policy.clamp.acm.participant.policy.client;
 
 import java.io.Closeable;
 import java.io.IOException;
@@ -29,7 +29,7 @@
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionRuntimeException;
 import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
@@ -45,13 +45,13 @@
      * Constructor.
      *
      * @param policyParticipantParameters the parameters for the policy participant
-     * @throws ControlLoopRuntimeException on client start errors
+     * @throws AutomationCompositionRuntimeException on client start errors
      */
     protected AbstractHttpClient(BusTopicParams policyParticipantParameters) {
         try {
             httpclient = HttpClientFactoryInstance.getClientFactory().build(policyParticipantParameters);
         } catch (final Exception e) {
-            throw new ControlLoopRuntimeException(Status.INTERNAL_SERVER_ERROR, " Client failed to start", e);
+            throw new AutomationCompositionRuntimeException(Status.INTERNAL_SERVER_ERROR, " Client failed to start", e);
         }
     }
 
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/PolicyApiHttpClient.java
similarity index 94%
rename from participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java
rename to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/PolicyApiHttpClient.java
index 38a79f7..a86576e 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyApiHttpClient.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/PolicyApiHttpClient.java
@@ -18,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.client;
+package org.onap.policy.clamp.acm.participant.policy.client;
 
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.onap.policy.clamp.controlloop.participant.policy.main.parameters.ParticipantPolicyParameters;
+import org.onap.policy.clamp.acm.participant.policy.main.parameters.ParticipantPolicyParameters;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.springframework.stereotype.Component;
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/PolicyPapHttpClient.java
similarity index 94%
rename from participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java
rename to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/PolicyPapHttpClient.java
index f835c6e..584170a 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/client/PolicyPapHttpClient.java
@@ -18,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.client;
+package org.onap.policy.clamp.acm.participant.policy.client;
 
 import java.util.LinkedList;
 import java.util.List;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.onap.policy.clamp.controlloop.participant.policy.main.parameters.ParticipantPolicyParameters;
+import org.onap.policy.clamp.acm.participant.policy.main.parameters.ParticipantPolicyParameters;
 import org.onap.policy.models.pdp.concepts.DeploymentGroup;
 import org.onap.policy.models.pdp.concepts.DeploymentGroups;
 import org.onap.policy.models.pdp.concepts.DeploymentSubGroup;
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/ParticipantConfig.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/config/ParticipantConfig.java
similarity index 62%
copy from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/ParticipantConfig.java
copy to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/config/ParticipantConfig.java
index ce013a7..7f9ad24 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/ParticipantConfig.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/config/ParticipantConfig.java
@@ -18,10 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.config;
+package org.onap.policy.clamp.acm.participant.policy.config;
 
-import org.onap.policy.clamp.controlloop.participant.http.main.handler.ControlLoopElementHandler;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.policy.main.handler.AutomationCompositionElementHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 
@@ -29,15 +29,15 @@
 public class ParticipantConfig {
 
     /**
-     * Register ControlLoopElementListener.
+     * Register AutomationCompositionElementListener.
      *
      * @param intermediaryApi the ParticipantIntermediaryApi
-     * @param clElementHandler the ControlLoop Element Handler
+     * @param acElementHandler the Aotumation Composition Element Handler
      */
     @Autowired
-    public void registerControlLoopElementListener(ParticipantIntermediaryApi intermediaryApi,
-            ControlLoopElementHandler clElementHandler) {
-        intermediaryApi.registerControlLoopElementListener(clElementHandler);
-        clElementHandler.setIntermediaryApi(intermediaryApi);
+    public void registerAutomationCompositionElementListener(ParticipantIntermediaryApi intermediaryApi,
+            AutomationCompositionElementHandler acElementHandler) {
+        intermediaryApi.registerAutomationCompositionElementListener(acElementHandler);
+        acElementHandler.setIntermediaryApi(intermediaryApi);
     }
 }
diff --git a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/config/SecurityConfig.java
similarity index 95%
copy from participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java
copy to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/config/SecurityConfig.java
index 499bbe1..d7ce925 100644
--- a/participant/participant-impl/participant-impl-http/src/main/java/org/onap/policy/clamp/controlloop/participant/http/config/SecurityConfig.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/config/SecurityConfig.java
@@ -16,7 +16,7 @@
  * ========================LICENSE_END===================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.config;
+package org.onap.policy.clamp.acm.participant.policy.config;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Configuration;
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/main/handler/AutomationCompositionElementHandler.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/main/handler/AutomationCompositionElementHandler.java
new file mode 100644
index 0000000..42d7526
--- /dev/null
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/main/handler/AutomationCompositionElementHandler.java
@@ -0,0 +1,227 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021,2022 Nordix Foundation.
+ * ================================================================================
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.policy.main.handler;
+
+import java.time.Instant;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.UUID;
+import lombok.Setter;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.policy.client.PolicyApiHttpClient;
+import org.onap.policy.clamp.acm.participant.policy.client.PolicyPapHttpClient;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
+import org.onap.policy.models.pdp.concepts.DeploymentSubGroup;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class handles implementation of automationCompositionElement updates.
+ */
+@Component
+public class AutomationCompositionElementHandler implements AutomationCompositionElementListener {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(AutomationCompositionElementHandler.class);
+    private final Map<String, String> policyTypeMap = new LinkedHashMap<>();
+    private final Map<String, String> policyMap = new LinkedHashMap<>();
+
+    private final PolicyApiHttpClient apiHttpClient;
+    private final PolicyPapHttpClient papHttpClient;
+
+    @Setter
+    private ParticipantIntermediaryApi intermediaryApi;
+
+    /**
+     * constructor.
+     *
+     * @param apiHttpClient the Policy Api Http Client
+     * @param papHttpClient the Policy Pap Http Client
+     */
+    public AutomationCompositionElementHandler(PolicyApiHttpClient apiHttpClient, PolicyPapHttpClient papHttpClient) {
+        this.papHttpClient = papHttpClient;
+        this.apiHttpClient = apiHttpClient;
+    }
+
+    /**
+     * Callback method to handle a automation composition element state change.
+     *
+     * @param automationCompositionId        the ID of the automation composition
+     * @param automationCompositionElementId the ID of the automation composition element
+     * @param currentState                   the current state of the automation composition element
+     * @param orderedState                   the state to which the automation composition element is changing to
+     */
+    @Override
+    public void automationCompositionElementStateChange(ToscaConceptIdentifier automationCompositionId,
+                                                        UUID automationCompositionElementId,
+                                                        AutomationCompositionState currentState,
+                                                        AutomationCompositionOrderedState orderedState) {
+        switch (orderedState) {
+            case UNINITIALISED:
+                try {
+                    undeployPolicies(automationCompositionElementId);
+                    deletePolicyData(automationCompositionId, automationCompositionElementId, orderedState);
+                    intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                        automationCompositionElementId, orderedState, AutomationCompositionState.UNINITIALISED,
+                        ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                } catch (PfModelRuntimeException e) {
+                    LOGGER.debug("Undeploying/Deleting policy failed {}", automationCompositionElementId, e);
+                }
+                break;
+            case PASSIVE:
+                try {
+                    undeployPolicies(automationCompositionElementId);
+                } catch (PfModelRuntimeException e) {
+                    LOGGER.debug("Undeploying policies failed - no policies to undeploy {}",
+                        automationCompositionElementId);
+                }
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, orderedState, AutomationCompositionState.PASSIVE,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            case RUNNING:
+                LOGGER.info("Running state is not supported");
+                break;
+            default:
+                LOGGER.debug("Unknown orderedstate {}", orderedState);
+                break;
+        }
+    }
+
+    private void deletePolicyData(ToscaConceptIdentifier automationCompositionId,
+                                  UUID automationCompositionElementId, AutomationCompositionOrderedState newState) {
+        // Delete all policies of this automationComposition from policy framework
+        for (Entry<String, String> policy : policyMap.entrySet()) {
+            apiHttpClient.deletePolicy(policy.getKey(), policy.getValue());
+        }
+        policyMap.clear();
+        // Delete all policy types of this automation composition from policy framework
+        for (Entry<String, String> policyType : policyTypeMap.entrySet()) {
+            apiHttpClient.deletePolicyType(policyType.getKey(), policyType.getValue());
+        }
+        policyTypeMap.clear();
+        intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+            automationCompositionElementId, newState, AutomationCompositionState.UNINITIALISED,
+            ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+    }
+
+    private void deployPolicies(ToscaConceptIdentifier automationCompositionId, UUID automationCompositionElementId,
+                                AutomationCompositionOrderedState newState) {
+        // Deploy all policies of this automationComposition from Policy Framework
+        if (!policyMap.entrySet().isEmpty()) {
+            for (Entry<String, String> policy : policyMap.entrySet()) {
+                papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(),
+                    DeploymentSubGroup.Action.POST);
+            }
+            LOGGER.debug("Policies deployed to {} successfully", automationCompositionElementId);
+        } else {
+            LOGGER.debug("No policies to deploy to {}", automationCompositionElementId);
+        }
+        intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+            automationCompositionElementId, newState, AutomationCompositionState.PASSIVE,
+            ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+    }
+
+    private void undeployPolicies(UUID automationCompositionElementId) {
+        // Undeploy all policies of this automation composition from Policy Framework
+        if (!policyMap.entrySet().isEmpty()) {
+            for (Entry<String, String> policy : policyMap.entrySet()) {
+                papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(),
+                    DeploymentSubGroup.Action.DELETE);
+            }
+            LOGGER.debug("Undeployed policies from {} successfully", automationCompositionElementId);
+        } else {
+            LOGGER.debug("No policies are deployed to {}", automationCompositionElementId);
+        }
+    }
+
+    /**
+     * Callback method to handle an update on a automation composition element.
+     *
+     * @param element             the information on the automation composition element
+     * @param acElementDefinition toscaNodeTemplate
+     * @throws PfModelException in case of an exception
+     */
+    @Override
+    public void automationCompositionElementUpdate(ToscaConceptIdentifier automationCompositionId,
+                                                   AutomationCompositionElement element,
+                                                   ToscaNodeTemplate acElementDefinition)
+        throws PfModelException {
+        intermediaryApi.updateAutomationCompositionElementState(automationCompositionId, element.getId(),
+            element.getOrderedState(),
+            AutomationCompositionState.PASSIVE, ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE);
+        ToscaServiceTemplate automationCompositionDefinition = element.getToscaServiceTemplateFragment();
+        if (automationCompositionDefinition.getToscaTopologyTemplate() != null) {
+            if (automationCompositionDefinition.getPolicyTypes() != null) {
+                for (ToscaPolicyType policyType : automationCompositionDefinition.getPolicyTypes().values()) {
+                    policyTypeMap.put(policyType.getName(), policyType.getVersion());
+                }
+                LOGGER.debug("Found Policy Types in automation composition definition: {} , Creating Policy Types",
+                    automationCompositionDefinition.getName());
+                apiHttpClient.createPolicyType(automationCompositionDefinition);
+            }
+            if (automationCompositionDefinition.getToscaTopologyTemplate().getPolicies() != null) {
+                for (Map<String, ToscaPolicy> gotPolicyMap : automationCompositionDefinition.getToscaTopologyTemplate()
+                    .getPolicies()) {
+                    for (ToscaPolicy policy : gotPolicyMap.values()) {
+                        policyMap.put(policy.getName(), policy.getVersion());
+                    }
+                }
+                LOGGER.debug("Found Policies in automation composition definition: {} , Creating Policies",
+                    automationCompositionDefinition.getName());
+                apiHttpClient.createPolicy(automationCompositionDefinition);
+            }
+        }
+        deployPolicies(automationCompositionId, element.getId(), element.getOrderedState());
+    }
+
+    /**
+     * Handle automationCompositionElement statistics.
+     *
+     * @param automationCompositionElementId automation composition element id
+     */
+    @Override
+    public void handleStatistics(UUID automationCompositionElementId) {
+        var acElement = intermediaryApi.getAutomationCompositionElement(automationCompositionElementId);
+        if (acElement != null) {
+            var acElementStatistics = new AcElementStatistics();
+            acElementStatistics.setState(acElement.getState());
+            acElementStatistics.setTimeStamp(Instant.now());
+            intermediaryApi.updateAutomationCompositionElementStatistics(automationCompositionElementId,
+                acElementStatistics);
+        }
+    }
+}
\ No newline at end of file
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/ParticipantPolicyParameters.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/ParticipantPolicyParameters.java
similarity index 86%
rename from participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/ParticipantPolicyParameters.java
rename to participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/ParticipantPolicyParameters.java
index 8e1de36..a571981 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/ParticipantPolicyParameters.java
+++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/ParticipantPolicyParameters.java
@@ -18,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.main.parameters;
+package org.onap.policy.clamp.acm.participant.policy.main.parameters;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.parameters.validation.ParameterGroupConstraint;
 import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/config/ParticipantConfig.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/config/ParticipantConfig.java
deleted file mode 100644
index 7b49a9a..0000000
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/config/ParticipantConfig.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.config;
-
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.policy.main.handler.ControlLoopElementHandler;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class ParticipantConfig {
-
-    /**
-     * Register ControlLoopElementListener.
-     *
-     * @param intermediaryApi the ParticipantIntermediaryApi
-     * @param clElementHandler the ControlLoop Element Handler
-     */
-    @Autowired
-    public void registerControlLoopElementListener(ParticipantIntermediaryApi intermediaryApi,
-            ControlLoopElementHandler clElementHandler) {
-        intermediaryApi.registerControlLoopElementListener(clElementHandler);
-        clElementHandler.setIntermediaryApi(intermediaryApi);
-    }
-}
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/config/SecurityConfig.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/config/SecurityConfig.java
deleted file mode 100644
index 4ee8c41..0000000
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/config/SecurityConfig.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * Copyright (C) 2021 Nordix Foundation. All rights reserved.
- * ======================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-
-@Configuration
-public class SecurityConfig extends WebSecurityConfigurerAdapter {
-
-    @Value("${security.enable-csrf:true}")
-    private boolean csrfEnabled = true;
-
-    @Override
-    protected void configure(HttpSecurity http) throws Exception {
-        // @formatter:off
-        http.authorizeRequests()
-            .antMatchers().authenticated()
-            .anyRequest().authenticated()
-            .and().httpBasic();
-        // @formatter:on
-
-        if (!csrfEnabled) {
-            http.csrf().disable();
-        }
-    }
-}
diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java
deleted file mode 100644
index 663d6d5..0000000
--- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021-2022 Nordix Foundation.
- * ================================================================================
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.main.handler;
-
-import java.time.Instant;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.UUID;
-import lombok.Setter;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.policy.client.PolicyApiHttpClient;
-import org.onap.policy.clamp.controlloop.participant.policy.client.PolicyPapHttpClient;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.base.PfModelRuntimeException;
-import org.onap.policy.models.pdp.concepts.DeploymentSubGroup;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-/**
- * This class handles implementation of controlLoopElement updates.
- */
-@Component
-public class ControlLoopElementHandler implements ControlLoopElementListener {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(ControlLoopElementHandler.class);
-    private final Map<String, String> policyTypeMap = new LinkedHashMap<>();
-    private final Map<String, String> policyMap = new LinkedHashMap<>();
-
-    private final PolicyApiHttpClient apiHttpClient;
-    private final PolicyPapHttpClient papHttpClient;
-
-    @Setter
-    private ParticipantIntermediaryApi intermediaryApi;
-
-    /**
-     * constructor.
-     *
-     * @param apiHttpClient the Policy Api Http Client
-     * @param papHttpClient the Policy Pap Http Client
-     */
-    public ControlLoopElementHandler(PolicyApiHttpClient apiHttpClient, PolicyPapHttpClient papHttpClient) {
-        this.papHttpClient = papHttpClient;
-        this.apiHttpClient = apiHttpClient;
-    }
-
-    /**
-     * Callback method to handle a control loop element state change.
-     *
-     * @param controlLoopId the ID of the control loop
-     * @param controlLoopElementId the ID of the control loop element
-     * @param currentState the current state of the control loop element
-     * @param orderedState the state to which the control loop element is changing to
-     */
-    @Override
-    public void controlLoopElementStateChange(ToscaConceptIdentifier controlLoopId,
-                UUID controlLoopElementId, ControlLoopState currentState,
-            ControlLoopOrderedState orderedState) {
-        switch (orderedState) {
-            case UNINITIALISED:
-                try {
-                    undeployPolicies(controlLoopElementId);
-                    deletePolicyData(controlLoopId, controlLoopElementId, orderedState);
-                    intermediaryApi.updateControlLoopElementState(controlLoopId,
-                            controlLoopElementId, orderedState, ControlLoopState.UNINITIALISED,
-                            ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                } catch (PfModelRuntimeException e) {
-                    LOGGER.debug("Undeploying/Deleting policy failed {}", controlLoopElementId, e);
-                }
-                break;
-            case PASSIVE:
-                try {
-                    undeployPolicies(controlLoopElementId);
-                } catch (PfModelRuntimeException e) {
-                    LOGGER.debug("Undeploying policies failed - no policies to undeploy {}", controlLoopElementId);
-                }
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                        controlLoopElementId, orderedState, ControlLoopState.PASSIVE,
-                        ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            case RUNNING:
-                LOGGER.info("Running state is not supported");
-                break;
-            default:
-                LOGGER.debug("Unknown orderedstate {}", orderedState);
-                break;
-        }
-    }
-
-    private void deletePolicyData(ToscaConceptIdentifier controlLoopId,
-                                  UUID controlLoopElementId, ControlLoopOrderedState newState) {
-        // Delete all policies of this controlLoop from policy framework
-        for (Entry<String, String> policy : policyMap.entrySet()) {
-            apiHttpClient.deletePolicy(policy.getKey(), policy.getValue());
-        }
-        policyMap.clear();
-        // Delete all policy types of this control loop from policy framework
-        for (Entry<String, String> policyType : policyTypeMap.entrySet()) {
-            apiHttpClient.deletePolicyType(policyType.getKey(), policyType.getValue());
-        }
-        policyTypeMap.clear();
-        intermediaryApi.updateControlLoopElementState(controlLoopId,
-                controlLoopElementId, newState, ControlLoopState.UNINITIALISED,
-                ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-    }
-
-    private void deployPolicies(ToscaConceptIdentifier controlLoopId, UUID controlLoopElementId,
-            ControlLoopOrderedState newState) {
-        // Deploy all policies of this controlLoop from Policy Framework
-        if (policyMap.entrySet() != null) {
-            for (Entry<String, String> policy : policyMap.entrySet()) {
-                papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(),
-                        DeploymentSubGroup.Action.POST);
-            }
-            LOGGER.debug("Policies deployed to {} successfully", controlLoopElementId);
-        } else {
-            LOGGER.debug("No policies to deploy to {}", controlLoopElementId);
-        }
-        intermediaryApi.updateControlLoopElementState(controlLoopId,
-                controlLoopElementId, newState, ControlLoopState.PASSIVE,
-                ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-    }
-
-    private void undeployPolicies(UUID controlLoopElementId) {
-        // Undeploy all policies of this controlloop from Policy Framework
-        if (policyMap.entrySet() != null) {
-            for (Entry<String, String> policy : policyMap.entrySet()) {
-                papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(),
-                        DeploymentSubGroup.Action.DELETE);
-            }
-            LOGGER.debug("Undeployed policies from {} successfully", controlLoopElementId);
-        } else {
-            LOGGER.debug("No policies are deployed to {}", controlLoopElementId);
-        }
-    }
-
-    /**
-     * Callback method to handle an update on a control loop element.
-     *
-     * @param element the information on the control loop element
-     * @param clElementDefinition toscaNodeTemplate
-     * @throws PfModelException in case of an exception
-     */
-    @Override
-    public void controlLoopElementUpdate(ToscaConceptIdentifier controlLoopId, ControlLoopElement element,
-                                         ToscaNodeTemplate clElementDefinition)
-            throws PfModelException {
-        ToscaServiceTemplate controlLoopDefinition = element.getToscaServiceTemplateFragment();
-        if (controlLoopDefinition.getToscaTopologyTemplate() != null) {
-            if (controlLoopDefinition.getPolicyTypes() != null) {
-                for (ToscaPolicyType policyType : controlLoopDefinition.getPolicyTypes().values()) {
-                    policyTypeMap.put(policyType.getName(), policyType.getVersion());
-                }
-                LOGGER.debug("Found Policy Types in control loop definition: {} , Creating Policy Types",
-                        controlLoopDefinition.getName());
-                apiHttpClient.createPolicyType(controlLoopDefinition);
-            }
-            if (controlLoopDefinition.getToscaTopologyTemplate().getPolicies() != null) {
-                for (Map<String, ToscaPolicy> foundPolicyMap : controlLoopDefinition.getToscaTopologyTemplate()
-                        .getPolicies()) {
-                    for (ToscaPolicy policy : foundPolicyMap.values()) {
-                        policyMap.put(policy.getName(), policy.getVersion());
-                    }
-                }
-                LOGGER.debug("Found Policies in control loop definition: {} , Creating Policies",
-                        controlLoopDefinition.getName());
-                apiHttpClient.createPolicy(controlLoopDefinition);
-            }
-        }
-        deployPolicies(controlLoopId, element.getId(), element.getOrderedState());
-    }
-
-    /**
-     * Handle controlLoopElement statistics.
-     *
-     * @param controlLoopElementId controlloop element id
-     */
-    @Override
-    public void handleStatistics(UUID controlLoopElementId) throws PfModelException {
-        var clElement = intermediaryApi.getControlLoopElement(controlLoopElementId);
-        if (clElement != null) {
-            var clElementStatistics = new ClElementStatistics();
-            clElementStatistics.setControlLoopState(clElement.getState());
-            clElementStatistics.setTimeStamp(Instant.now());
-            intermediaryApi.updateControlLoopElementStatistics(controlLoopElementId, clElementStatistics);
-        }
-    }
-}
\ No newline at end of file
diff --git a/participant/participant-impl/participant-impl-policy/src/main/resources/META-INF/persistence.xml b/participant/participant-impl/participant-impl-policy/src/main/resources/META-INF/persistence.xml
index 46db712..383bc74 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/resources/META-INF/persistence.xml
+++ b/participant/participant-impl/participant-impl-policy/src/main/resources/META-INF/persistence.xml
@@ -52,11 +52,11 @@
         <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate</class>
         <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate</class>
         <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoop</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoopElement</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipant</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipantStatistics</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaClElementStatistics</class>
+        <class>org.onap.policy.clamp.acm.models.acm.persistence.concepts.JpaAutomationComposition</class>
+        <class>org.onap.policy.clamp.acm.models.acm.persistence.concepts.JpaAutomationCompositionElement</class>
+        <class>org.onap.policy.clamp.acm.models.acm.persistence.concepts.JpaParticipant</class>
+        <class>org.onap.policy.clamp.acm.models.acm.persistence.concepts.JpaParticipantStatistics</class>
+        <class>org.onap.policy.clamp.acm.models.acm.persistence.concepts.JpaAcElementStatistics</class>
         <properties>
             <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
             <property name="eclipselink.ddl-generation.output-mode" value="database" />
diff --git a/participant/participant-impl/participant-impl-policy/src/main/resources/config/application.yaml b/participant/participant-impl/participant-impl-policy/src/main/resources/config/application.yaml
index 2aa33c1..c3338a9 100644
--- a/participant/participant-impl/participant-impl-policy/src/main/resources/config/application.yaml
+++ b/participant/participant-impl/participant-impl-policy/src/main/resources/config/application.yaml
@@ -30,19 +30,19 @@
       name: org.onap.PM_Policy
       version: 1.0.0
     participantType:
-      name: org.onap.policy.controlloop.PolicyControlLoopParticipant
+      name: org.onap.policy.clamp.acm.PolicyParticipant
       version: 2.3.1
-    clampControlLoopTopics:
+    clampAutomationCompositionTopics:
       topicSources:
         -
-          topic: POLICY-CLRUNTIME-PARTICIPANT
+          topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:localhost}
           topicCommInfrastructure: dmaap
           fetchTimeout: 15000
       topicSinks:
         -
-          topic: POLICY-CLRUNTIME-PARTICIPANT
+          topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:localhost}
           topicCommInfrastructure: dmaap
@@ -54,4 +54,4 @@
 server:
   port: 8085
   servlet:
-    context-path: /onap/policyparticipant
+    context-path: /onap/policy/clamp/acm/policyparticipant
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/endtoend/ParticipantMessagesTest.java
similarity index 83%
rename from participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java
rename to participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/endtoend/ParticipantMessagesTest.java
index ce368eb..c17d2c5 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/endtoend/ParticipantMessagesTest.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.endtoend;
+package org.onap.policy.clamp.acm.participant.policy.endtoend;
 
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.Assert.assertEquals;
@@ -30,19 +30,19 @@
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantDeregisterAckListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantRegisterAckListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantUpdateListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.onap.policy.clamp.controlloop.participant.policy.main.utils.TestListenerUtils;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantDeregisterAckListener;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantRegisterAckListener;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantUpdateListener;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.policy.main.utils.TestListenerUtils;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatus;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdateAck;
 import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
@@ -169,6 +169,6 @@
     }
 
     private ToscaConceptIdentifier getParticipantType() {
-        return new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1");
+        return new ToscaConceptIdentifier("org.onap.policy.acm.PolicyAutomationCompositionParticipant", "2.3.1");
     }
 }
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/handler/AutomationCompositionElementHandlerTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/handler/AutomationCompositionElementHandlerTest.java
new file mode 100644
index 0000000..0d114db
--- /dev/null
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/handler/AutomationCompositionElementHandlerTest.java
@@ -0,0 +1,102 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.policy.main.handler;
+
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.mockito.Mockito.when;
+
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.policy.client.PolicyApiHttpClient;
+import org.onap.policy.clamp.acm.participant.policy.client.PolicyPapHttpClient;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+
+class AutomationCompositionElementHandlerTest {
+
+    private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
+    private static final String ID_VERSION = "1.0.1";
+    private static final UUID automationCompositionElementId = UUID.randomUUID();
+    private static final ToscaConceptIdentifier automationCompositionId =
+        new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+
+    @Test
+    void testHandlerExceptions() {
+        AutomationCompositionElementHandler handler = getTestingHandler();
+
+        assertDoesNotThrow(() -> handler
+            .automationCompositionElementStateChange(automationCompositionId,
+                automationCompositionElementId,
+                AutomationCompositionState.UNINITIALISED,
+                AutomationCompositionOrderedState.PASSIVE));
+
+        assertDoesNotThrow(() -> handler
+            .automationCompositionElementStateChange(automationCompositionId,
+                automationCompositionElementId,
+                AutomationCompositionState.RUNNING,
+                AutomationCompositionOrderedState.UNINITIALISED));
+
+        assertDoesNotThrow(() -> handler
+            .automationCompositionElementStateChange(automationCompositionId,
+                automationCompositionElementId,
+                AutomationCompositionState.PASSIVE,
+                AutomationCompositionOrderedState.RUNNING));
+        var element = getTestingAcElement();
+        var acElementDefinition = Mockito.mock(ToscaNodeTemplate.class);
+
+        assertDoesNotThrow(() -> handler
+            .automationCompositionElementUpdate(automationCompositionId, element, acElementDefinition));
+
+        assertDoesNotThrow(() -> handler
+            .handleStatistics(automationCompositionElementId));
+    }
+
+    AutomationCompositionElementHandler getTestingHandler() {
+        var api = Mockito.mock(PolicyApiHttpClient.class);
+        var pap = Mockito.mock(PolicyPapHttpClient.class);
+        var handler = new AutomationCompositionElementHandler(api, pap);
+        var intermediaryApi = Mockito.mock(ParticipantIntermediaryApi.class);
+        var element = getTestingAcElement();
+        when(intermediaryApi.getAutomationCompositionElement(automationCompositionElementId)).thenReturn(element);
+        handler.setIntermediaryApi(intermediaryApi);
+        return handler;
+    }
+
+    AutomationCompositionElement getTestingAcElement() {
+        var element = new AutomationCompositionElement();
+        element.setDefinition(automationCompositionId);
+        element.setDescription("Description");
+        element.setId(automationCompositionElementId);
+        element.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED);
+        element.setParticipantId(automationCompositionId);
+        element.setState(AutomationCompositionState.UNINITIALISED);
+        var template = Mockito.mock(ToscaServiceTemplate.class);
+        element.setToscaServiceTemplateFragment(template);
+        return element;
+    }
+}
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/CommonTestData.java
similarity index 93%
rename from participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java
rename to participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/CommonTestData.java
index e965370..b5cd9d4 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/CommonTestData.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/CommonTestData.java
@@ -18,12 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.main.parameters;
+package org.onap.policy.clamp.acm.participant.policy.main.parameters;
 
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+import org.onap.policy.clamp.acm.participant.policy.main.parameters.ParticipantPolicyParameters;
 import org.onap.policy.common.endpoints.parameters.TopicParameters;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
@@ -34,7 +35,7 @@
  * Class to hold/create all parameters for test cases.
  */
 public class CommonTestData {
-    public static final String PARTICIPANT_GROUP_NAME = "ControlLoopParticipantGroup";
+    public static final String PARTICIPANT_GROUP_NAME = "AutomationCompositionParticipantGroup";
     public static final String DESCRIPTION = "Participant description";
     public static final long TIME_INTERVAL = 2000;
     public static final List<TopicParameters> TOPIC_PARAMS = Arrays.asList(getTopicParams());
@@ -123,7 +124,7 @@
             map.put("description", DESCRIPTION);
             map.put("participantId", getParticipantId());
             map.put("participantType", getParticipantId());
-            map.put("clampControlLoopTopics", getTopicParametersMap(false));
+            map.put("clampAutomationCompositionTopics", getTopicParametersMap(false));
         }
 
         return map;
@@ -151,7 +152,7 @@
      */
     public static TopicParameters getTopicParams() {
         final TopicParameters topicParams = new TopicParameters();
-        topicParams.setTopic("POLICY-CLRUNTIME-PARTICIPANT");
+        topicParams.setTopic("POLICY-ACRUNTIME-PARTICIPANT");
         topicParams.setTopicCommInfrastructure("dmaap");
         topicParams.setServers(Arrays.asList("localhost"));
         return topicParams;
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/ParticipantPolicyParametersTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/ParticipantPolicyParametersTest.java
similarity index 86%
rename from participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/ParticipantPolicyParametersTest.java
rename to participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/ParticipantPolicyParametersTest.java
index 74e7cb1..89b2bce 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/parameters/ParticipantPolicyParametersTest.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/parameters/ParticipantPolicyParametersTest.java
@@ -18,17 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.main.parameters;
+package org.onap.policy.clamp.acm.participant.policy.main.parameters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.validation.Validation;
 import javax.validation.ValidatorFactory;
 import org.junit.jupiter.api.Test;
+import org.onap.policy.clamp.acm.participant.policy.main.parameters.ParticipantPolicyParameters;
 
 class ParticipantPolicyParametersTest {
-    private CommonTestData commonTestData = new CommonTestData();
-    private ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
+    private final CommonTestData commonTestData = new CommonTestData();
+    private final ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
 
     @Test
     void testParticipantPolicyParameters() {
@@ -39,14 +40,14 @@
     @Test
     void testParticipantPolicyParameters_NullTopicSinks() {
         final ParticipantPolicyParameters participantParameters = commonTestData.getParticipantPolicyParameters();
-        participantParameters.getIntermediaryParameters().getClampControlLoopTopics().setTopicSinks(null);
+        participantParameters.getIntermediaryParameters().getClampAutomationCompositionTopics().setTopicSinks(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
     @Test
     void testParticipantPolicyParameters_NullTopicSources() {
         final ParticipantPolicyParameters participantParameters = commonTestData.getParticipantPolicyParameters();
-        participantParameters.getIntermediaryParameters().getClampControlLoopTopics().setTopicSources(null);
+        participantParameters.getIntermediaryParameters().getClampAutomationCompositionTopics().setTopicSources(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
diff --git a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/rest/ActuatorControllerTest.java
similarity index 95%
copy from participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java
copy to participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/rest/ActuatorControllerTest.java
index 8efff8f..8543bf9 100644
--- a/participant/participant-impl/participant-impl-http/src/test/java/org/onap/policy/clamp/controlloop/participant/http/rest/ActuatorControllerTest.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/rest/ActuatorControllerTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.http.rest;
+package org.onap.policy.clamp.acm.participant.policy.main.rest;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -27,7 +27,7 @@
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.participant.http.utils.CommonActuatorController;
+import org.onap.policy.clamp.acm.participant.policy.main.utils.CommonActuatorController;
 import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/CommonActuatorController.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/utils/CommonActuatorController.java
similarity index 96%
rename from participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/CommonActuatorController.java
rename to participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/utils/CommonActuatorController.java
index ec6e309..689977e 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/CommonActuatorController.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/utils/CommonActuatorController.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.policy.main.utils;
+package org.onap.policy.clamp.acm.participant.policy.main.utils;
 
 import static org.junit.Assert.assertEquals;
 
@@ -40,7 +40,7 @@
 public class CommonActuatorController {
 
     public static final String SELF = NetworkUtil.getHostname();
-    public static final String CONTEXT_PATH = "onap/policyparticipant";
+    public static final String CONTEXT_PATH = "onap/policy/clamp/acm/policyparticipant";
     public static final String ACTUATOR_ENDPOINT = CONTEXT_PATH + "/actuator/";
 
     private static String httpPrefix;
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/utils/TestListenerUtils.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/utils/TestListenerUtils.java
new file mode 100644
index 0000000..a29831d
--- /dev/null
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/acm/participant/policy/main/utils/TestListenerUtils.java
@@ -0,0 +1,321 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.policy.main.utils;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUpdates;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUtils;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionStateChange;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
+import org.onap.policy.clamp.models.acm.utils.AcmUtils;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.coder.YamlJsonTranslator;
+import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class TestListenerUtils {
+
+    private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
+    private static final Coder CODER = new StandardCoder();
+    private static final Logger LOGGER = LoggerFactory.getLogger(TestListenerUtils.class);
+
+    /**
+     * Method to create a automationComposition from a yaml file.
+     *
+     * @return AutomationComposition automation composition
+     */
+    public static AutomationComposition createAutomationComposition() {
+        AutomationComposition automationComposition = new AutomationComposition();
+        Map<UUID, AutomationCompositionElement> elements = new LinkedHashMap<>();
+        ToscaServiceTemplate toscaServiceTemplate = testAutomationCompositionRead();
+        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+            toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
+            AutomationCompositionElement acElement = new AutomationCompositionElement();
+            acElement.setId(UUID.randomUUID());
+
+            ToscaConceptIdentifier acElementParticipantId = new ToscaConceptIdentifier();
+            acElementParticipantId.setName(toscaInputEntry.getKey());
+            acElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
+            acElement.setParticipantId(acElementParticipantId);
+
+            acElement.setDefinition(acElementParticipantId);
+            acElement.setState(AutomationCompositionState.UNINITIALISED);
+            acElement.setDescription(toscaInputEntry.getValue().getDescription());
+            acElement.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED);
+            elements.put(acElement.getId(), acElement);
+        }
+        automationComposition.setElements(elements);
+        automationComposition.setName("PMSHInstance0");
+        automationComposition.setVersion("1.0.0");
+
+        ToscaConceptIdentifier definition = new ToscaConceptIdentifier();
+        definition.setName("PMSHInstance0");
+        definition.setVersion("1.0.0");
+        automationComposition.setDefinition(definition);
+
+        return automationComposition;
+    }
+
+    /**
+     * Method to create AutomationCompositionStateChange message from the arguments passed.
+     *
+     * @param automationCompositionOrderedState automationCompositionOrderedState
+     * @return AutomationCompositionStateChange message
+     */
+    public static AutomationCompositionStateChange createAutomationCompositionStateChangeMsg(
+        final AutomationCompositionOrderedState automationCompositionOrderedState) {
+        final AutomationCompositionStateChange acStateChangeMsg = new AutomationCompositionStateChange();
+
+        ToscaConceptIdentifier automationCompositionId = new ToscaConceptIdentifier();
+        automationCompositionId.setName("PMSHInstance0");
+        automationCompositionId.setVersion("1.0.0");
+
+        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
+        participantId.setName("org.onap.PM_Policy");
+        participantId.setVersion("0.0.0");
+
+        acStateChangeMsg.setAutomationCompositionId(automationCompositionId);
+        acStateChangeMsg.setParticipantId(participantId);
+        acStateChangeMsg.setTimestamp(Instant.now());
+        acStateChangeMsg.setOrderedState(automationCompositionOrderedState);
+
+        return acStateChangeMsg;
+    }
+
+    /**
+     * Method to create AutomationCompositionUpdateMsg.
+     *
+     * @return AutomationCompositionUpdate message
+     */
+    public static AutomationCompositionUpdate createAutomationCompositionUpdateMsg() {
+        final AutomationCompositionUpdate acUpdateMsg = new AutomationCompositionUpdate();
+        ToscaConceptIdentifier automationCompositionId = new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
+        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "0.0.0");
+
+        acUpdateMsg.setAutomationCompositionId(automationCompositionId);
+        acUpdateMsg.setParticipantId(participantId);
+        acUpdateMsg.setMessageId(UUID.randomUUID());
+        acUpdateMsg.setTimestamp(Instant.now());
+
+        Map<UUID, AutomationCompositionElement> elements = new LinkedHashMap<>();
+        ToscaServiceTemplate toscaServiceTemplate = testAutomationCompositionRead();
+        TestListenerUtils.addPoliciesToToscaServiceTemplate(toscaServiceTemplate);
+        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+            toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
+            if (ParticipantUtils.checkIfNodeTemplateIsAutomationCompositionElement(toscaInputEntry.getValue(),
+                toscaServiceTemplate)) {
+                AutomationCompositionElement acElement = new AutomationCompositionElement();
+                acElement.setId(UUID.randomUUID());
+                var acParticipantType =
+                    ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties());
+
+                acElement.setParticipantId(acParticipantType);
+                acElement.setParticipantType(acParticipantType);
+
+                acElement.setDefinition(
+                    new ToscaConceptIdentifier(toscaInputEntry.getKey(), toscaInputEntry.getValue().getVersion()));
+                acElement.setState(AutomationCompositionState.UNINITIALISED);
+                acElement.setDescription(toscaInputEntry.getValue().getDescription());
+                acElement.setOrderedState(AutomationCompositionOrderedState.PASSIVE);
+                elements.put(acElement.getId(), acElement);
+            }
+        }
+
+        List<ParticipantUpdates> participantUpdates = new ArrayList<>();
+        for (AutomationCompositionElement element : elements.values()) {
+            AcmUtils.setServiceTemplatePolicyInfo(element, toscaServiceTemplate);
+            AcmUtils.prepareParticipantUpdate(element, participantUpdates);
+        }
+        acUpdateMsg.setParticipantUpdatesList(participantUpdates);
+        return acUpdateMsg;
+    }
+
+    /**
+     * Method to create participantUpdateMsg.
+     *
+     * @return ParticipantUpdate message
+     */
+    public static ParticipantUpdate createParticipantUpdateMsg() {
+        final ParticipantUpdate participantUpdateMsg = new ParticipantUpdate();
+        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "1.0.0");
+        ToscaConceptIdentifier participantType =
+            new ToscaConceptIdentifier("org.onap.policy.acm.PolicyAutomationCompositionParticipant", "2.3.1");
+
+        participantUpdateMsg.setParticipantId(participantId);
+        participantUpdateMsg.setTimestamp(Instant.now());
+        participantUpdateMsg.setParticipantType(participantType);
+        participantUpdateMsg.setTimestamp(Instant.ofEpochMilli(3000));
+        participantUpdateMsg.setMessageId(UUID.randomUUID());
+
+        ToscaServiceTemplate toscaServiceTemplate = testAutomationCompositionRead();
+        // Add policies to the toscaServiceTemplate
+        TestListenerUtils.addPoliciesToToscaServiceTemplate(toscaServiceTemplate);
+
+        List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>();
+        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : toscaServiceTemplate.getToscaTopologyTemplate()
+            .getNodeTemplates().entrySet()) {
+            if (ParticipantUtils.checkIfNodeTemplateIsAutomationCompositionElement(toscaInputEntry.getValue(),
+                toscaServiceTemplate)) {
+                AcmUtils.prepareParticipantDefinitionUpdate(
+                    ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties()),
+                    toscaInputEntry.getKey(), toscaInputEntry.getValue(),
+                    participantDefinitionUpdates, null);
+            }
+        }
+
+        participantUpdateMsg.setParticipantDefinitionUpdates(participantDefinitionUpdates);
+        return participantUpdateMsg;
+    }
+
+    /**
+     * Method to create AutomationCompositionUpdate using the arguments passed.
+     *
+     * @param jsonFilePath the path of the automation composition content
+     * @return AutomationCompositionUpdate message
+     * @throws CoderException exception while reading the file to object
+     */
+    public static AutomationCompositionUpdate createParticipantAcUpdateMsgFromJson(String jsonFilePath)
+        throws CoderException {
+        AutomationCompositionUpdate automationCompositionUpdateMsg =
+            CODER.decode(new File(jsonFilePath), AutomationCompositionUpdate.class);
+        return automationCompositionUpdateMsg;
+    }
+
+    private static ToscaServiceTemplate testAutomationCompositionRead() {
+        Set<String> automationCompositionDirectoryContents =
+            ResourceUtils.getDirectoryContents("src/test/resources/utils/servicetemplates");
+
+        boolean atLeastOneAutomationCompositionTested = false;
+        ToscaServiceTemplate toscaServiceTemplate = null;
+
+        for (String automationCompositionFilePath : automationCompositionDirectoryContents) {
+            if (!automationCompositionFilePath.endsWith(".yaml")) {
+                continue;
+            }
+            atLeastOneAutomationCompositionTested = true;
+            toscaServiceTemplate = testAutomationCompositionYamlSerialization(automationCompositionFilePath);
+        }
+
+        // Add policy_types to the toscaServiceTemplate
+        addPolicyTypesToToscaServiceTemplate(toscaServiceTemplate);
+
+        assertTrue(atLeastOneAutomationCompositionTested);
+        return toscaServiceTemplate;
+    }
+
+    private static void addPolicyTypesToToscaServiceTemplate(ToscaServiceTemplate toscaServiceTemplate) {
+        Set<String> policyTypeDirectoryContents = ResourceUtils.getDirectoryContents("policytypes");
+
+        for (String policyTypeFilePath : policyTypeDirectoryContents) {
+            String policyTypeString = ResourceUtils.getResourceAsString(policyTypeFilePath);
+
+            ToscaServiceTemplate foundPolicyTypeSt =
+                yamlTranslator.fromYaml(policyTypeString, ToscaServiceTemplate.class);
+
+            toscaServiceTemplate.setDerivedFrom(foundPolicyTypeSt.getDerivedFrom());
+            toscaServiceTemplate.setDescription(foundPolicyTypeSt.getDescription());
+            toscaServiceTemplate.setMetadata(foundPolicyTypeSt.getMetadata());
+            toscaServiceTemplate.setName(foundPolicyTypeSt.getName());
+            toscaServiceTemplate.setToscaDefinitionsVersion(foundPolicyTypeSt.getToscaDefinitionsVersion());
+            toscaServiceTemplate.setVersion(foundPolicyTypeSt.getVersion());
+
+            if (foundPolicyTypeSt.getDataTypes() != null) {
+                if (toscaServiceTemplate.getDataTypes() == null) {
+                    toscaServiceTemplate.setDataTypes(foundPolicyTypeSt.getDataTypes());
+                } else {
+                    toscaServiceTemplate.getDataTypes().putAll(foundPolicyTypeSt.getDataTypes());
+                }
+            }
+
+            if (toscaServiceTemplate.getPolicyTypes() == null) {
+                toscaServiceTemplate.setPolicyTypes(foundPolicyTypeSt.getPolicyTypes());
+            } else {
+                toscaServiceTemplate.getPolicyTypes().putAll(foundPolicyTypeSt.getPolicyTypes());
+            }
+        }
+    }
+
+    /**
+     * Method to add polcies to the toscaServiceTemplate.
+     *
+     * @param toscaServiceTemplate to add policies
+     */
+    public static void addPoliciesToToscaServiceTemplate(ToscaServiceTemplate toscaServiceTemplate) {
+        Set<String> policiesDirectoryContents = ResourceUtils.getDirectoryContents("policies");
+
+        for (String policiesFilePath : policiesDirectoryContents) {
+            if (!policiesFilePath.endsWith("yaml")) {
+                continue;
+            }
+
+            String policiesString = ResourceUtils.getResourceAsString(policiesFilePath);
+
+            ToscaServiceTemplate foundPoliciesSt =
+                yamlTranslator.fromYaml(policiesString, ToscaServiceTemplate.class);
+            toscaServiceTemplate.getToscaTopologyTemplate()
+                .setPolicies(foundPoliciesSt.getToscaTopologyTemplate().getPolicies());
+        }
+    }
+
+    private static ToscaServiceTemplate testAutomationCompositionYamlSerialization(
+        String automationCompositionFilePath) {
+        try {
+            String automationCompositionString = ResourceUtils.getResourceAsString(automationCompositionFilePath);
+            if (automationCompositionString == null) {
+                throw new FileNotFoundException(automationCompositionFilePath);
+            }
+
+            ToscaServiceTemplate serviceTemplate =
+                yamlTranslator.fromYaml(automationCompositionString, ToscaServiceTemplate.class);
+            return serviceTemplate;
+        } catch (FileNotFoundException e) {
+            LOGGER.error("cannot find YAML file", automationCompositionFilePath);
+            throw new IllegalArgumentException(e);
+        }
+    }
+}
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandlerTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandlerTest.java
deleted file mode 100644
index b5c5e19..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandlerTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.main.handler;
-
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.mockito.Mockito.when;
-
-import java.util.UUID;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.policy.client.PolicyApiHttpClient;
-import org.onap.policy.clamp.controlloop.participant.policy.client.PolicyPapHttpClient;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-
-class ControlLoopElementHandlerTest {
-
-    private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
-    private static final String ID_VERSION = "1.0.1";
-    private static final UUID controlLoopElementId = UUID.randomUUID();
-    private static final ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
-
-    @Test
-    void testHandlerExceptions() throws PfModelException {
-        ControlLoopElementHandler handler = getTestingHandler();
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId,
-                        ControlLoopState.UNINITIALISED,
-                        ControlLoopOrderedState.PASSIVE));
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId,
-                        ControlLoopState.RUNNING,
-                        ControlLoopOrderedState.UNINITIALISED));
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId,
-                        ControlLoopState.PASSIVE,
-                        ControlLoopOrderedState.RUNNING));
-        var element = getTestingClElement();
-        var clElementDefinition = Mockito.mock(ToscaNodeTemplate.class);
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementUpdate(controlLoopId, element, clElementDefinition));
-
-        assertDoesNotThrow(() -> handler
-                .handleStatistics(controlLoopElementId));
-    }
-
-    ControlLoopElementHandler getTestingHandler() {
-        var api = Mockito.mock(PolicyApiHttpClient.class);
-        var pap = Mockito.mock(PolicyPapHttpClient.class);
-        var handler = new ControlLoopElementHandler(api, pap);
-        var intermediaryApi = Mockito.mock(ParticipantIntermediaryApi.class);
-        var element = getTestingClElement();
-        when(intermediaryApi.getControlLoopElement(controlLoopElementId)).thenReturn(element);
-        handler.setIntermediaryApi(intermediaryApi);
-        return handler;
-    }
-
-    ControlLoopElement getTestingClElement() {
-        var element = new ControlLoopElement();
-        element.setDefinition(controlLoopId);
-        element.setDescription("Description");
-        element.setId(controlLoopElementId);
-        element.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
-        element.setParticipantId(controlLoopId);
-        element.setState(ControlLoopState.UNINITIALISED);
-        var template = Mockito.mock(ToscaServiceTemplate.class);
-        element.setToscaServiceTemplateFragment(template);
-        return element;
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/rest/ActuatorControllerTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/rest/ActuatorControllerTest.java
deleted file mode 100644
index 9cc16e2..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/rest/ActuatorControllerTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.main.rest;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.participant.policy.main.utils.CommonActuatorController;
-import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.LocalServerPort;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-@AutoConfigureMetrics
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-class ActuatorControllerTest extends CommonActuatorController {
-
-    private static final String HEALTH_ENDPOINT = "health";
-    private static final String METRICS_ENDPOINT = "metrics";
-    private static final String PROMETHEUS_ENDPOINT = "prometheus";
-
-    @LocalServerPort
-    private int randomServerPort;
-
-    @BeforeEach
-    public void setUpPort() {
-        super.setHttpPrefix(randomServerPort);
-    }
-
-    @Test
-    void testGetHealth_Unauthorized() throws Exception {
-        assertUnauthorizedActGet(HEALTH_ENDPOINT);
-    }
-
-    @Test
-    void testGetMetrics_Unauthorized() throws Exception {
-        assertUnauthorizedActGet(METRICS_ENDPOINT);
-    }
-
-    @Test
-    void testGetPrometheus_Unauthorized() throws Exception {
-        assertUnauthorizedActGet(PROMETHEUS_ENDPOINT);
-    }
-
-    @Test
-    void testGetHealth() throws Exception {
-        Invocation.Builder invocationBuilder = super.sendActRequest(HEALTH_ENDPOINT);
-        Response rawresp = invocationBuilder.buildGet().invoke();
-        assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-    }
-
-    @Test
-    void testGetMetrics() throws Exception {
-        Invocation.Builder invocationBuilder = super.sendActRequest(METRICS_ENDPOINT);
-        Response rawresp = invocationBuilder.buildGet().invoke();
-        assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-    }
-
-    @Test
-    void testGePrometheus() throws Exception {
-        Invocation.Builder invocationBuilder = super.sendActRequest(PROMETHEUS_ENDPOINT);
-        Response rawresp = invocationBuilder.buildGet().invoke();
-        assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java
deleted file mode 100644
index d517ef6..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.main.utils;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.time.Instant;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.onap.policy.clamp.controlloop.common.utils.CommonUtils;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUtils;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
-import org.onap.policy.clamp.controlloop.participant.policy.main.parameters.CommonTestData;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.common.utils.coder.YamlJsonTranslator;
-import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class TestListenerUtils {
-
-    private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
-    private static final Coder CODER = new StandardCoder();
-    static CommonTestData commonTestData = new CommonTestData();
-    private static final Logger LOGGER = LoggerFactory.getLogger(TestListenerUtils.class);
-
-    /**
-     * Method to create a controlLoop from a yaml file.
-     *
-     * @return ControlLoop controlloop
-     */
-    public static ControlLoop createControlLoop() {
-        ControlLoop controlLoop = new ControlLoop();
-        Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
-        ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
-        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
-                toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
-            ControlLoopElement clElement = new ControlLoopElement();
-            clElement.setId(UUID.randomUUID());
-
-            ToscaConceptIdentifier clElementParticipantId = new ToscaConceptIdentifier();
-            clElementParticipantId.setName(toscaInputEntry.getKey());
-            clElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
-            clElement.setParticipantId(clElementParticipantId);
-
-            clElement.setDefinition(clElementParticipantId);
-            clElement.setState(ControlLoopState.UNINITIALISED);
-            clElement.setDescription(toscaInputEntry.getValue().getDescription());
-            clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
-            elements.put(clElement.getId(), clElement);
-        }
-        controlLoop.setElements(elements);
-        controlLoop.setName("PMSHInstance0");
-        controlLoop.setVersion("1.0.0");
-
-        ToscaConceptIdentifier definition = new ToscaConceptIdentifier();
-        definition.setName("PMSHInstance0");
-        definition.setVersion("1.0.0");
-        controlLoop.setDefinition(definition);
-
-        return controlLoop;
-    }
-
-    /**
-     * Method to create ControlLoopStateChange message from the arguments passed.
-     *
-     * @param controlLoopOrderedState controlLoopOrderedState
-     *
-     * @return ControlLoopStateChange message
-     */
-    public static ControlLoopStateChange createControlLoopStateChangeMsg(
-            final ControlLoopOrderedState controlLoopOrderedState) {
-        final ControlLoopStateChange clStateChangeMsg = new ControlLoopStateChange();
-
-        ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
-        controlLoopId.setName("PMSHInstance0");
-        controlLoopId.setVersion("1.0.0");
-
-        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
-        participantId.setName("org.onap.PM_Policy");
-        participantId.setVersion("0.0.0");
-
-        clStateChangeMsg.setControlLoopId(controlLoopId);
-        clStateChangeMsg.setParticipantId(participantId);
-        clStateChangeMsg.setTimestamp(Instant.now());
-        clStateChangeMsg.setOrderedState(controlLoopOrderedState);
-
-        return clStateChangeMsg;
-    }
-
-    /**
-     * Method to create ControlLoopUpdateMsg.
-     *
-     * @return ControlLoopUpdate message
-     */
-    public static ControlLoopUpdate createControlLoopUpdateMsg() {
-        final ControlLoopUpdate clUpdateMsg = new ControlLoopUpdate();
-        ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
-        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "0.0.0");
-
-        clUpdateMsg.setControlLoopId(controlLoopId);
-        clUpdateMsg.setParticipantId(participantId);
-        clUpdateMsg.setMessageId(UUID.randomUUID());
-        clUpdateMsg.setTimestamp(Instant.now());
-
-        Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
-        ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
-        TestListenerUtils.addPoliciesToToscaServiceTemplate(toscaServiceTemplate);
-        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
-                toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
-            if (ParticipantUtils.checkIfNodeTemplateIsControlLoopElement(toscaInputEntry.getValue(),
-                    toscaServiceTemplate)) {
-                ControlLoopElement clElement = new ControlLoopElement();
-                clElement.setId(UUID.randomUUID());
-                var clParticipantType =
-                        ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties());
-
-                clElement.setParticipantId(clParticipantType);
-                clElement.setParticipantType(clParticipantType);
-
-                clElement.setDefinition(
-                        new ToscaConceptIdentifier(toscaInputEntry.getKey(), toscaInputEntry.getValue().getVersion()));
-                clElement.setState(ControlLoopState.UNINITIALISED);
-                clElement.setDescription(toscaInputEntry.getValue().getDescription());
-                clElement.setOrderedState(ControlLoopOrderedState.PASSIVE);
-                elements.put(clElement.getId(), clElement);
-            }
-        }
-
-        List<ParticipantUpdates> participantUpdates = new ArrayList<>();
-        for (ControlLoopElement element : elements.values()) {
-            CommonUtils.setServiceTemplatePolicyInfo(element, toscaServiceTemplate);
-            CommonUtils.prepareParticipantUpdate(element, participantUpdates);
-        }
-        clUpdateMsg.setParticipantUpdatesList(participantUpdates);
-        return clUpdateMsg;
-    }
-
-    /**
-     * Method to create participantUpdateMsg.
-     *
-     * @return ParticipantUpdate message
-     */
-    public static ParticipantUpdate createParticipantUpdateMsg() {
-        final ParticipantUpdate participantUpdateMsg = new ParticipantUpdate();
-        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "1.0.0");
-        ToscaConceptIdentifier participantType =
-                new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1");
-
-        participantUpdateMsg.setParticipantId(participantId);
-        participantUpdateMsg.setTimestamp(Instant.now());
-        participantUpdateMsg.setParticipantType(participantType);
-        participantUpdateMsg.setTimestamp(Instant.ofEpochMilli(3000));
-        participantUpdateMsg.setMessageId(UUID.randomUUID());
-
-        ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
-        // Add policies to the toscaServiceTemplate
-        TestListenerUtils.addPoliciesToToscaServiceTemplate(toscaServiceTemplate);
-
-        List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>();
-        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : toscaServiceTemplate.getToscaTopologyTemplate()
-                .getNodeTemplates().entrySet()) {
-            if (ParticipantUtils.checkIfNodeTemplateIsControlLoopElement(toscaInputEntry.getValue(),
-                    toscaServiceTemplate)) {
-                CommonUtils.prepareParticipantDefinitionUpdate(
-                        ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties()),
-                        toscaInputEntry.getKey(), toscaInputEntry.getValue(),
-                        participantDefinitionUpdates, null);
-            }
-        }
-
-        participantUpdateMsg.setParticipantDefinitionUpdates(participantDefinitionUpdates);
-        return participantUpdateMsg;
-    }
-
-    /**
-     * Method to create ControlLoopUpdate using the arguments passed.
-     *
-     * @param jsonFilePath the path of the controlloop content
-     *
-     * @return ControlLoopUpdate message
-     * @throws CoderException exception while reading the file to object
-     */
-    public static ControlLoopUpdate createParticipantClUpdateMsgFromJson(String jsonFilePath) throws CoderException {
-        ControlLoopUpdate controlLoopUpdateMsg = CODER.decode(new File(jsonFilePath), ControlLoopUpdate.class);
-        return controlLoopUpdateMsg;
-    }
-
-    private static ToscaServiceTemplate testControlLoopRead() {
-        Set<String> controlLoopDirectoryContents =
-                ResourceUtils.getDirectoryContents("src/test/resources/utils/servicetemplates");
-
-        boolean atLeastOneControlLoopTested = false;
-        ToscaServiceTemplate toscaServiceTemplate = null;
-
-        for (String controlLoopFilePath : controlLoopDirectoryContents) {
-            if (!controlLoopFilePath.endsWith(".yaml")) {
-                continue;
-            }
-            atLeastOneControlLoopTested = true;
-            toscaServiceTemplate = testControlLoopYamlSerialization(controlLoopFilePath);
-        }
-
-        // Add policy_types to the toscaServiceTemplate
-        addPolicyTypesToToscaServiceTemplate(toscaServiceTemplate);
-
-        assertTrue(atLeastOneControlLoopTested);
-        return toscaServiceTemplate;
-    }
-
-    private static void addPolicyTypesToToscaServiceTemplate(ToscaServiceTemplate toscaServiceTemplate) {
-        Set<String> policyTypeDirectoryContents = ResourceUtils.getDirectoryContents("policytypes");
-
-        for (String policyTypeFilePath : policyTypeDirectoryContents) {
-            String policyTypeString = ResourceUtils.getResourceAsString(policyTypeFilePath);
-
-            ToscaServiceTemplate foundPolicyTypeSt =
-                    yamlTranslator.fromYaml(policyTypeString, ToscaServiceTemplate.class);
-
-            toscaServiceTemplate.setDerivedFrom(foundPolicyTypeSt.getDerivedFrom());
-            toscaServiceTemplate.setDescription(foundPolicyTypeSt.getDescription());
-            toscaServiceTemplate.setMetadata(foundPolicyTypeSt.getMetadata());
-            toscaServiceTemplate.setName(foundPolicyTypeSt.getName());
-            toscaServiceTemplate.setToscaDefinitionsVersion(foundPolicyTypeSt.getToscaDefinitionsVersion());
-            toscaServiceTemplate.setVersion(foundPolicyTypeSt.getVersion());
-
-            if (foundPolicyTypeSt.getDataTypes() != null) {
-                if (toscaServiceTemplate.getDataTypes() == null) {
-                    toscaServiceTemplate.setDataTypes(foundPolicyTypeSt.getDataTypes());
-                } else {
-                    toscaServiceTemplate.getDataTypes().putAll(foundPolicyTypeSt.getDataTypes());
-                }
-            }
-
-            if (toscaServiceTemplate.getPolicyTypes() == null) {
-                toscaServiceTemplate.setPolicyTypes(foundPolicyTypeSt.getPolicyTypes());
-            } else {
-                toscaServiceTemplate.getPolicyTypes().putAll(foundPolicyTypeSt.getPolicyTypes());
-            }
-        }
-    }
-
-    /**
-     * Method to add polcies to the toscaServiceTemplate.
-     *
-     * @param toscaServiceTemplate to add policies
-     */
-    public static void addPoliciesToToscaServiceTemplate(ToscaServiceTemplate toscaServiceTemplate) {
-        Set<String> policiesDirectoryContents = ResourceUtils.getDirectoryContents("policies");
-
-        for (String policiesFilePath : policiesDirectoryContents) {
-            String policiesString = ResourceUtils.getResourceAsString(policiesFilePath);
-
-            ToscaServiceTemplate foundPoliciesSt = yamlTranslator.fromYaml(policiesString, ToscaServiceTemplate.class);
-            toscaServiceTemplate.getToscaTopologyTemplate()
-                    .setPolicies(foundPoliciesSt.getToscaTopologyTemplate().getPolicies());
-        }
-    }
-
-    private static ToscaServiceTemplate testControlLoopYamlSerialization(String controlLoopFilePath) {
-        try {
-            String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
-            if (controlLoopString == null) {
-                throw new FileNotFoundException(controlLoopFilePath);
-            }
-
-            ToscaServiceTemplate serviceTemplate =
-                    yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
-            return serviceTemplate;
-        } catch (FileNotFoundException e) {
-            LOGGER.error("cannot find YAML file", controlLoopFilePath);
-            throw new IllegalArgumentException(e);
-        }
-    }
-}
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/application_test.properties b/participant/participant-impl/participant-impl-policy/src/test/resources/application_test.properties
index 4978140..932d9f2 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/application_test.properties
+++ b/participant/participant-impl/participant-impl-policy/src/test/resources/application_test.properties
@@ -1,6 +1,6 @@
 spring.security.user.name=participantUser
 spring.security.user.password=zb!XztG34
-server.servlet.context-path=/onap/policyparticipant
+server.servlet.context-path=/onap/policy/clamp/acm/policyparticipant
 server.error.path=/error
 server.http-port=8085
 
@@ -15,14 +15,14 @@
 participant.intermediaryParameters.description: Participant Description
 participant.intermediaryParameters.participantId.name: org.onap.PM_Policy
 participant.intermediaryParameters.participantId.version: 1.0.0
-participant.intermediaryParameters.participantType.name: org.onap.policy.controlloop.PolicyControlLoopParticipant
+participant.intermediaryParameters.participantType.name: org.onap.policy.acm.PolicyAutomationCompositionParticipant
 participant.intermediaryParameters.participantType.version: 2.3.1
-participant.intermediaryParameters.clampControlLoopTopics.name=ControlLoop Topics
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topicCommInfrastructure=dmaap
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].fetchTimeout=15000
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.name=Automation Composition Topics
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].fetchTimeout=15000
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topicCommInfrastructure=dmaap
 management.endpoints.web.exposure.include=health,metrics,prometheus
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/TestACParams.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/TestACParams.yaml
new file mode 100644
index 0000000..3e5782c
--- /dev/null
+++ b/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/TestACParams.yaml
@@ -0,0 +1,172 @@
+tosca_definitions_version: "tosca_simple_yaml_1_3"
+data_types:
+  onap.datatypes.ToscaConceptIdentifier:
+    derived_from: tosca.datatypes.Root
+    properties:
+      name:
+        type: string
+        required: true
+      version:
+        type: string
+        required: true
+node_types:
+  org.onap.policy.clamp.acm.Participant:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+  org.onap.policy.clamp.acm.AutomationCompositionElement:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+      participantType:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+      startPhase:
+        type: integer
+        required: false
+        constraints:
+          - greater-or-equal: 0
+        metadata:
+          common: true
+        description: A value indicating the start phase in which this automation composition element will be started,
+          the first start phase is zero. Automation Composition Elements are started in their start_phase
+          order and stopped in reverse start phase order. Automation Composition Elements with the same start phase are
+          started and stopped simultaneously
+  org.onap.policy.clamp.acm.AutomationComposition:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+      elements:
+        type: list
+        required: true
+        entry_schema:
+          type: onap.datatypes.ToscaConceptIdentifier
+  org.onap.policy.clamp.acm.DCAEMicroserviceAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      dcae_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+  org.onap.policy.clamp.acm.PolicyTypeAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      policy_type_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+  org.onap.policy.clamp.acm.CDSAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      cds_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+topology_template:
+  node_templates:
+    org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant:
+      version: 2.3.4
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.policy.acm.MonitoringPolicyAutomationCompositionParticipant:
+      version: 2.3.1
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.policy.acm.OperationalPolicyAutomationCompositionParticipant:
+      version: 3.2.1
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant:
+      version: 2.2.1
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.DCAEMicroserviceAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element, DCAE microservice for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant
+          version: 2.3.4
+        dcae_blueprint_id:
+          name: org.onap.dcae.blueprints.PMSHBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.PolicyTypeAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element, monitoring policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.acm.MonitoringPolicyAutomationCompositionParticipant
+          version: 2.3.1
+        policy_type_id:
+          name: onap.policies.monitoring.pm-subscription-handler
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.PolicyTypeAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element, operational policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.acm.OperationalPolicyAutomationCompositionParticipant
+          version: 2.2.1
+        policy_type_id:
+          name: onap.policies.operational.pm-subscription-handler
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.AutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for CDS for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant
+          version: 3.2.1
+        cds_blueprint_id:
+          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSHAutomationCompositionDefinition:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.AutomationComposition
+      type_version: 1.0.0
+      description: Automation composition for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        elements:
+          - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement
+            version: 1.2.3
+
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/TestCLParams.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/TestCLParams.yaml
deleted file mode 100644
index 2ef3c6d..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/TestCLParams.yaml
+++ /dev/null
@@ -1,172 +0,0 @@
-tosca_definitions_version: "tosca_simple_yaml_1_3"
-data_types:
-  onap.datatypes.ToscaConceptIdentifier:
-    derived_from: tosca.datatypes.Root
-    properties:
-      name:
-        type: string
-        required: true
-      version:
-        type: string
-        required: true
-node_types:
-  org.onap.policy.clamp.controlloop.Participant:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-  org.onap.policy.clamp.controlloop.ControlLoopElement:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-      participantType:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-      startPhase:
-        type: integer
-        required: false
-        constraints:
-        - greater-or-equal: 0
-        metadata:
-            common: true
-        description: A value indicating the start phase in which this control loop element will be started, the
-                     first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
-                     in reverse start phase order. Control Loop Elements with the same start phase are started and
-                     stopped simultaneously
-  org.onap.policy.clamp.controlloop.ControlLoop:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-      elements:
-        type: list
-        required: true
-        entry_schema:
-          type: onap.datatypes.ToscaConceptIdentifier
-  org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      dcae_blueprint_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-  org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      policy_type_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-  org.onap.policy.clamp.controlloop.CDSControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      cds_blueprint_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-topology_template:
-  node_templates:
-    org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant:
-      version: 2.3.4
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.policy.controlloop.MonitoringPolicyControlLoopParticipant:
-      version: 2.3.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.policy.controlloop.OperationalPolicyControlLoopParticipant:
-      version: 3.2.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant:
-      version: 2.2.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the DCAE microservice for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant
-          version: 2.3.4
-        dcae_blueprint_id:
-          name: org.onap.dcae.blueprints.PMSHBlueprint
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the monitoring policy for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.policy.controlloop.MonitoringPolicyControlLoopParticipant
-          version: 2.3.1
-        policy_type_id:
-          name: onap.policies.monitoring.pm-subscription-handler
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the operational policy for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.policy.controlloop.OperationalPolicyControlLoopParticipant
-          version: 2.2.1
-        policy_type_id:
-          name: onap.policies.operational.pm-subscription-handler
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for CDS for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant
-          version: 3.2.1
-        cds_blueprint_id:
-          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSHControlLoopDefinition:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoop
-      type_version: 1.0.0
-      description: Control loop for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        elements:
-        - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
-          version: 1.2.3
-        - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement
-          version: 1.2.3
-        - name: org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement
-          version: 1.2.3
-        - name: org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement
-          version: 1.2.3
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/logback-test.xml b/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/logback-test.xml
index cf6b89e..0f1d28b 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/logback-test.xml
+++ b/participant/participant-impl/participant-impl-policy/src/test/resources/parameters/logback-test.xml
@@ -36,7 +36,7 @@
         <appender-ref ref="STDOUT" />
     </root>
 
-    <logger name="org.onap.policy.clamp.controlloop.participant" level="trace" additivity="false">
+    <logger name="org.onap.policy.clamp.acm.participant" level="trace" additivity="false">
         <appender-ref ref="STDOUT" />
     </logger>
 </configuration>
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policies/vCPE.policies.optimization.input.tosca.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policies/vCPE.policies.optimization.input.tosca.yaml
deleted file mode 100644
index 126e8e6..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policies/vCPE.policies.optimization.input.tosca.yaml
+++ /dev/null
@@ -1,348 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-topology_template:
-  policies:
-    -
-        OSDF_CASABLANCA.Affinity_Default:
-            type: onap.policies.optimization.resource.AffinityPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Affinity_Default
-            metadata:
-                policy-id: OSDF_CASABLANCA.Affinity_Default
-                policy-version: 1
-            properties:
-                scope: []
-                services: []
-                resources: []
-                geography: []
-                identity: affinity_vCPE
-                applicableResources: any
-                affinityProperties:
-                    qualifier: same
-                    category: complex
-    -
-        OSDF_CASABLANCA.Affinity_Default_US:
-            type: onap.policies.optimization.resource.AffinityPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Affinity_Default_US
-            metadata:
-                policy-id: OSDF_CASABLANCA.Affinity_Default_US
-                policy-version: 1
-            properties:
-                scope: []
-                services: []
-                resources: []
-                geography: [US]
-                identity: affinity_vCPE
-                applicableResources: any
-                affinityProperties:
-                    qualifier: same
-                    category: complex
-    -
-        OSDF_CASABLANCA.Affinity_Default_vCPE_US_0:
-            type: onap.policies.optimization.resource.AffinityPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Affinity_Default_vCPE_US_0
-            metadata:
-                policy-id: OSDF_CASABLANCA.Affinity_Default_vCPE_US_0
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                resources: []
-                geography: [US]
-                identity: affinity_vCPE
-                applicableResources: any
-                affinityProperties:
-                    qualifier: different
-                    category: complex
-    -
-        OSDF_CASABLANCA.Affinity_vCPE_US_Gold_1:
-            type: onap.policies.optimization.resource.AffinityPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Affinity_vCPE_US_Gold_1
-            metadata:
-                policy-id: OSDF_CASABLANCA.Affinity_vCPE_1
-                policy-version: 1
-            properties:
-                scope: [gold]
-                services: [vCPE]
-                resources: [vGMuxInfra, vG]
-                geography: [US, INTERNATIONAL]
-                identity: affinity_vCPE
-                applicableResources: any
-                affinityProperties:
-                    qualifier: same
-                    category: availabilityZone
-    -
-        OSDF_CASABLANCA.Affinity_vCPE_US_Platinum_1:
-            type: onap.policies.optimization.resource.AffinityPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Affinity_vCPE_US_Platinum_1
-            metadata:
-                policy-id: OSDF_CASABLANCA.Affinity_vCPE_1
-                policy-version: 1
-            properties:
-                scope: [platinum]
-                services: [vCPE]
-                resources: [vGMuxInfra, vG]
-                geography: [US, INTERNATIONAL]
-                identity: affinity_vCPE
-                applicableResources: any
-                affinityProperties:
-                    qualifier: different
-                    category: availabilityZone
-    -
-        OSDF_CASABLANCA.Capacity_vG_1:
-            type: onap.policies.optimization.resource.Vim_fit
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Capacity_vG_1
-            metadata:
-                policy-id: OSDF_CASABLANCA.Capacity_vG_1
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                resources: [vG]
-                geography: [US, INTERNATIONAL]
-                identity: capacity_vG
-                applicableResources: any
-                capacityProperty:
-                   controller: multicloud
-                   request: "{\"vCPU\": 10, \"Memory\": {\"quantity\": {\"get_param\": \"REQUIRED_MEM\"}, \"unit\": \"GB\"}, \"Storage\": {\"quantity\": {\"get_param\": \"REQUIRED_DISK\"}, \"unit\": \"GB\"}}"
-    -
-        OSDF_CASABLANCA.Capacity_vG_2:
-            type: onap.policies.optimization.resource.Vim_fit
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Capacity_vG_2
-            metadata:
-                policy-id: OSDF_CASABLANCA.Capacity_vG_2
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                resources: [vG]
-                geography: [US, INTERNATIONAL]
-                identity: capacity_vG
-                applicableResources: any
-                capacityProperty:
-                   controller: multicloud
-                   request: "{\"vCPU\": 15, \"Memory\": {\"quantity\": {\"get_param\": \"REQUIRED_MEM\"}, \"unit\": \"MB\"}, \"Storage\": {\"quantity\": {\"get_param\": \"REQUIRED_DISK\"}, \"unit\": \"GB\"}}"
-    -
-        OSDF_CASABLANCA.Distance_vG_1:
-            type: onap.policies.optimization.resource.DistancePolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.Distance_vG_1
-            metadata:
-                policy-id: OSDF_CASABLANCA.Distance_vG_1
-                policy-version: 1
-            properties:
-                scope: [platinum]
-                services: [vCPE]
-                resources: [vG]
-                geography: [US, INTERNATIONAL]
-                identity: distance-vG
-                applicableResources: any
-                distanceProperties:
-                    locationInfo: customer_loc
-                    distance:
-                        value: 1500
-                        operator: "<"
-                        unit: km
-    -
-        OSDF_CASABLANCA.hpa_policy_Default:
-            type: onap.policies.optimization.resource.HpaPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.hpa_policy_Default
-            metadata:
-                policy-id: OSDF_CASABLANCA.hpa_policy_Default
-                policy-version: 1
-            properties:
-                scope: []
-                services: []
-                resources: []
-                geography: []
-                identity: hpa-vG
-                flavorFeatures:
-                    -
-                         id: vg_1
-                         type: vnfc
-                         directives:
-                             -    type: flavor_directives
-                                  attributes:
-                                      -    attribute_name: flavor_label_vm_01
-                                           attribute_value: ""
-                         flavorProperties:
-                             -
-                                  hpa-feature: basicCapabilities
-                                  mandatory: True
-                                  architecture: generic
-                                  directives: []
-                                  hpa-feature-attributes:
-                                      -    hpa-attribute-key: numVirtualCpu
-                                           hpa-attribute-value: 8
-                                           operator: ['>=']
-                                           unit: ""
-                                      -    hpa-attribute-key: virtualMemSize
-                                           hpa-attribute-value: 6
-                                           operator: ['<=']
-                                           unit: ""
-                             -
-                                  hpa-feature: ovsDpdk
-                                  mandatory: False
-                                  architecture: generic
-                                  directives: []
-                                  hpa-feature-attributes:
-                                      -    hpa-attribute-key: dataProcessingAccelerationLibrary
-                                           hpa-attribute-value: ovsDpdk_version
-                                           operator: [=]
-                                           unit: ""
-    -
-        OSDF_CASABLANCA.hpa_policy_vG_1:
-            type: onap.policies.optimization.resource.HpaPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.hpa_policy_vG_1
-            metadata:
-                policy-id: OSDF_CASABLANCA.hpa_policy_vG_1
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE, vOtherService]
-                resources: [vG]
-                geography: []
-                identity: hpa-vG
-                flavorFeatures:
-                    -
-                         id: vg_1
-                         type: vnfc
-                         directives:
-                             -    type: flavor_directives
-                                  attributes:
-                                      -    attribute_name: flavor_label_vm_01
-                                           attribute_value: ""
-                         flavorProperties:
-                             -
-                                  hpa-feature: basicCapabilities
-                                  mandatory: True
-                                  architecture: generic
-                                  directives: []
-                                  hpa-feature-attributes:
-                                      -    hpa-attribute-key: numVirtualCpu
-                                           hpa-attribute-value: 6
-                                           operator: ['>=']
-                                           unit: ""
-                                      -    hpa-attribute-key: virtualMemSize
-                                           hpa-attribute-value: 4
-                                           operator: ['<=']
-                                           unit: ""
-                             -
-                                  hpa-feature: ovsDpdk
-                                  mandatory: False
-                                  architecture: generic
-                                  directives: []
-                                  hpa-feature-attributes:
-                                      -    hpa-attribute-key: dataProcessingAccelerationLibrary
-                                           hpa-attribute-value: ovsDpdk_version
-                                           operator: [=]
-                                           unit: ""
-    -
-        OSDF_CASABLANCA.queryPolicy_vCPE:
-            type: onap.policies.optimization.service.QueryPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.queryPolicy_vCPE
-            metadata:
-                policy-id: OSDF_CASABLANCA.queryPolicy_vCPE
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                geography: [US, INTERNATIONAL]
-                identity: vCPE_Query_Policy
-                queryProperties:
-                    -
-                        attribute: locationId
-                        attribute_location: customerLocation
-                        value: ""
-                    -
-                        attribute: id
-                        attribute_location: "vpnInfo.vpnId"
-                        value: ""
-                    -
-                        attribute: upstreamBW
-                        attribute_location: "vpnInfo.upstreamBW"
-                        value: ""
-                    -
-                        attribute: customerLatitude
-                        attribute_location: customerLatitude
-                        value: 1.1
-                    - 
-                        attribute: customerLongitude
-                        attribute_location: customerLongitude
-                        value: 2.2
-    -
-        OSDF_CASABLANCA.SubscriberPolicy_v1:
-            type: onap.policies.optimization.service.SubscriberPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.SubscriberPolicy_v1
-            metadata:
-                policy-id: OSDF_CASABLANCA.SubscriberPolicy_v1
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                identity: subscriber_vCPE
-                subscriberProperties:
-                    subscriberName: [subscriber_x, subscriber_y]
-                    subscriberRole: [platinum]
-                    provStatus: [CAPPED]
-    -
-        OSDF_CASABLANCA.SubscriberPolicy_v2:
-            type: onap.policies.optimization.service.SubscriberPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.SubscriberPolicy_v2
-            metadata:
-                policy-id: OSDF_CASABLANCA.SubscriberPolicy_v2
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                identity: subscriber_vCPE
-                subscriberProperties:
-                    subscriberName: [subscriber_a, subscriber_b]
-                    subscriberRole: [gold]
-                    provStatus: [CAPPED]
-    -
-        OSDF_CASABLANCA.vnfPolicy_vG:
-            type: onap.policies.optimization.resource.VnfPolicy
-            version: 1.0.0
-            type_version: 1.0.0
-            name: OSDF_CASABLANCA.vnfPolicy_vG
-            metadata:
-                policy-id: OSDF_CASABLANCA.vnfPolicy_vG
-                policy-version: 1
-            properties:
-                scope: []
-                services: [vCPE]
-                resources: [vG]
-                geography: [US, INTERNATIONAL]
-                identity: vnf_vG
-                applicableResources: any
-                vnfProperties:
-                    -
-                        inventoryProvider: aai
-                        serviceType: ""
-                        inventoryType: cloudRegionId
-                        customerId: ""
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Match.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Match.yaml
deleted file mode 100644
index 88b8705..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Match.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.Match:
-        derived_from: tosca.policies.Root
-        version: 1.0.0
-        name: onap.policies.Match
-        description: Base Policy Type for matchable Policies
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Naming.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Naming.yaml
deleted file mode 100644
index bde730c..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Naming.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.Naming:
-        derived_from: tosca.policies.Root
-        version: 1.0.0
-        name: onap.policies.Naming
-        description: Virtual policy node for naming
-        properties:
-            policy-instance-name:
-                type: string
-            naming-models:
-                type: list
-                entry_schema:
-                    type: policy.data.naming-model-entity
-data_types:
-    policy.data.naming-model-entity:
-        derived_from: tosca.datatypes.Root
-        properties:
-            nfRole:
-                type: string
-                required: false
-                metadata:
-                    matchable: true
-            naming-type:
-                type: string
-                required: true
-                metadata:
-                    matchable: true
-            naming-recipe:
-                type: string
-                required: true
-            name-operation:
-                type: string
-                required: false
-            naming-properties:
-                type: list
-                required: true
-                entry_schema:
-                    type: policy.data.naming-property
-    policy.data.naming-property:
-        derived_from: tosca.datatypes.Root
-        properties:
-            property-name:
-                type: string
-                required: true
-                metadata:
-                    matchable: true
-            property-value:
-                type: string
-                required: false
-            property-operation:
-                type: string
-                required: false
-            source-system:
-                type: string
-                required: false
-            source-endpoint:
-                type: string
-                required: false
-            increment-sequence:
-                type: policy.data.increment-sequence
-                required: false
-    policy.data.increment-sequence:
-        derived_from: tosca.datatypes.Root
-        properties:
-            scope:
-                type: list
-                required: true
-                entry_schema:
-                    type: string
-                    constraints:
-                    -   valid_values:
-                        - CLOUD_REGION_ID
-                        - LOCATION_CLLI
-                        - VNF
-                        - VM
-                        - VFMODULE
-                        - PRECEEDING
-                        - TRAILING
-                        - ENTIRETY
-            sequence-type:
-                type: string
-                require: true
-                entry_schema:
-                    type: string
-                    constraints:
-                    -   valid_values:
-                        - numeric
-                        - alpha-numeric
-            start-value:
-                type: string
-                required: true
-            max:
-                type: string
-                required: false
-            increment:
-                type: string
-                required: true
-            length:
-                type: string
-                required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Optimization.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Optimization.yaml
deleted file mode 100644
index 7fe0e59..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.Optimization.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.Optimization:
-      derived_from: tosca.policies.Root
-      version: 1.0.0
-      name: onap.policies.Optimization
-      description: The base policy type for all policies that govern optimization
-      properties:
-         scope:
-            description: Scope for the policy - could be for a specific release.
-            type: list
-            metadata:
-               matchable: true
-            required: true
-            entry_schema:
-               type: string
-         geography:
-            description: One or more geographic regions
-            type: list
-            metadata:
-               matchable: true
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - US
-                  - International
-         identity:
-            description: Used internally for identification
-            type: string
-            required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.Common.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.Common.yaml
deleted file mode 100644
index 3dc9792..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.Common.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.guard.Common:
-        derived_from: tosca.policies.Root
-        version: 1.0.0
-        name: onap.policies.controlloop.guard.Common
-        description: |
-            This is the base Policy Type for Guard policies that guard the execution of Operational
-            Policies.
-        properties:
-            actor:
-                type: string
-                description: Specifies the Actor the guard applies to.
-                required: true
-            operation:
-                type: string
-                description: Specified the operation that the actor is performing the guard applies to.
-                required: true
-            timeRange:
-                type: tosca.datatypes.TimeInterval
-                description: |
-                    An optional range of time during the day the guard policy is valid for.
-                required: false
-            id:
-                type: string
-                description: The Control Loop id this applies to.
-                required: false
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml
deleted file mode 100644
index f2b67e1..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.guard.common.Blacklist:
-        derived_from: onap.policies.controlloop.guard.Common
-        type_version: 1.0.0
-        version: 1.0.0
-        name: onap.policies.controlloop.guard.common.Blacklist
-        description: Supports blacklist of entity id's from performing control loop actions on.
-        properties:
-            blacklist:
-                type: list
-                description: List of entity id's not allowed to have control loop operations on.
-                required: true
-                entry_schema:
-                    type: string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.Filter.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.Filter.yaml
deleted file mode 100644
index ea8e92a..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.Filter.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.controlloop.guard.common.Filter:
-      derived_from: onap.policies.controlloop.guard.Common
-      type_version: 1.0.0
-      version: 1.0.0
-      name: onap.policies.controlloop.guard.common.Filter
-      description: Supports filtering of A&AI entities such as vnf-id, type, service, geographic region, etc.
-      properties:
-         algorithm:
-            type: string
-            description: Designates the precendence of blacklist vs whitelist
-            required: true
-            default: blacklist-overrides
-            constraints:
-            - valid_values: ["blacklist-overrides", "whitelist-overrides"]
-         filters:
-            type: list
-            description: List of filters to be applied.
-            required: true
-            entry_schema:
-               type: onap.datatypes.guard.filter
-data_types:
-   onap.datatypes.guard.filter:
-      derived_from: tosca.nodes.Root
-      properties:
-         field:
-            type: string
-            description: Name of the field to perform the filter on using the A&AI <node>.<property> syntax.
-            required: true
-            constraints:
-               - valid_values:
-                  - generic-vnf.vnf-name
-                  - generic-vnf.vnf-id
-                  - generic-vnf.vnf-type
-                  - generic-vnf.nf-naming-code
-                  - vserver.vserver-id
-                  - cloud-region.cloud-region-id
-         filter:
-            type: string
-            description: The filter value itself. For example, "RegionOne" "vFWCL*"
-            required: true
-         function:
-            type: string
-            description: The function applied to the filter.
-            required: true
-            constraints:
-               - valid_values:
-                  - string-equal
-                  - string-equal-ignore-case
-                  - string-regexp-match
-                  - string-contains
-                  - string-greater-than
-                  - string-greater-than-or-equal
-                  - string-less-than
-                  - string-less-than-or-equal
-                  - string-starts-with
-                  - string-ends-with
-         blacklist:
-            type: boolean
-            description: |
-               Indicates if the filter should be treated as a blacklist (true)
-               or whitelist (false).
-            required: true
-            default: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml
deleted file mode 100644
index 3e31ec2..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.guard.common.FrequencyLimiter:
-        derived_from: onap.policies.controlloop.guard.Common
-        type_version: 1.0.0
-        version: 1.0.0
-        name: onap.policies.controlloop.guard.common.FrequencyLimiter
-        description: Supports limiting the frequency of actions being taken by a Actor.
-        properties:
-            timeWindow:
-                type: integer
-                description: The time window to count the actions against.
-                required: true
-            timeUnits:
-                type: string
-                description: The units of time the window is counting.
-                required: true
-                constraints:
-                - valid_values: ["second", "minute", "hour", "day", "week", "month", "year"]
-            limit:
-                type: integer
-                description: The limit
-                required: true
-                constraints:
-                -   greater_than: 0
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.MinMax.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.MinMax.yaml
deleted file mode 100644
index 8f93572..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.common.MinMax.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.guard.common.MinMax:
-        derived_from: onap.policies.controlloop.guard.Common
-        type_version: 1.0.0
-        version: 1.0.0
-        name: onap.policies.controlloop.guard.common.MinMax
-        description: |
-            Supports Min/Max number of entity for scaling operations. Although min and max fields are marked as not
-            required, you need to have at least one or the other.
-        properties:
-            target:
-                type: string
-                required: true
-                description: The target entity that has scaling restricted
-            min:
-                type: integer
-                required: false
-                description: The minimum instances of this entity
-            max:
-                type: integer
-                required: false
-                description: The maximum instances of this entity
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml
deleted file mode 100644
index eaeee60..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.guard.coordination.FirstBlocksSecond.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.controlloop.Guard:
-      derived_from: tosca.policies.Root
-      version: 1.0.0
-      name: onap.policies.controlloop.Guard
-      description: Guard Policies for Control Loop Operational Policies
-   onap.policies.controlloop.guard.Coordination:
-      derived_from: onap.policies.controlloop.Guard
-      version: 1.0.0
-      name: onap.policies.controlloop.guard.Coordination
-      description: Guard Policies for Control Loop Coordination
-   onap.policies.controlloop.guard.coordination.FirstBlocksSecond:
-      derived_from: onap.policies.controlloop.guard.Coordination
-      version: 1.0.0
-      name: onap.policies.controlloop.guard.coordination.FirstBlocksSecond
-      description: Supports one Control Loop blocking another
-      properties:
-         controlLoop:
-            type: list
-            description: Specific Control Loops to which to apply this guard
-            required: true
-            constraint:
-               length: 2
-            entry_schema:
-               type: string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.Common.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.Common.yaml
deleted file mode 100644
index 9b3b057..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.Common.yaml
+++ /dev/null
@@ -1,143 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.operational.Common:
-        derived_from: tosca.policies.Root
-        version: 1.0.0
-        name: onap.policies.controlloop.operational.Common
-        description: |
-            Operational Policy for Control Loop execution. Originated in Frankfurt to support TOSCA Compliant
-            Policy Types. This does NOT support the legacy Policy YAML policy type.
-        properties:
-            id:
-                type: string
-                description: The unique control loop id.
-                required: true
-            timeout:
-                type: integer
-                description: |
-                    Overall timeout for executing all the operations. This timeout should equal or exceed the total
-                    timeout for each operation listed.
-                required: true
-            abatement:
-                type: boolean
-                description: Whether an abatement event message will be expected for the control loop from DCAE.
-                required: true
-                default: false
-            trigger:
-                type: string
-                description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
-                required: true
-            operations:
-                type: list
-                description: List of operations to be performed when Control Loop is triggered.
-                required: true
-                entry_schema:
-                    type: onap.datatype.controlloop.Operation
-
-data_types:
-    onap.datatype.controlloop.Target:
-        derived_from: tosca.datatypes.Root
-        description: Definition for a entity in A&AI to perform a control loop operation on
-        properties:
-            targetType:
-                type: string
-                description: Category for the target type
-                required: true
-                constraints:
-                - valid_values: [VNF, VM, VFMODULE, PNF]
-            entityIds:
-                type: map
-                description: |
-                    Map of values that identify the resource. If none are provided, it is assumed that the
-                    entity that generated the ONSET event will be the target.
-                required: false
-                metadata:
-                    clamp_possible_values: ClampExecution:CSAR_RESOURCES
-                entry_schema:
-                    type: string
-
-    onap.datatype.controlloop.Actor:
-        derived_from: tosca.datatypes.Root
-        description: An actor/operation/target definition
-        properties:
-            actor:
-                type: string
-                description: The actor performing the operation.
-                required: true
-                metadata:
-                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor
-            operation:
-                type: string
-                description: The operation the actor is performing.
-                metadata:
-                    clamp_possible_values: Dictionary:DefaultOperations,ClampExecution:CDS/operation
-                required: true
-            target:
-                type: onap.datatype.controlloop.Target
-                description: The resource the operation should be performed on.
-                required: true
-            payload:
-                type: map
-                description: Name/value pairs of payload information passed by Policy to the actor
-                required: false
-                metadata:
-                    clamp_possible_values: ClampExecution:CDS/payload
-                entry_schema:
-                    type: string
-
-    onap.datatype.controlloop.Operation:
-        derived_from: tosca.datatypes.Root
-        description: An operation supported by an actor
-        properties:
-            id:
-                type: string
-                description: Unique identifier for the operation
-                required: true
-            description:
-                type: string
-                description: A user-friendly description of the intent for the operation
-                required: false
-            operation:
-                type: onap.datatype.controlloop.Actor
-                description: The definition of the operation to be performed.
-                required: true
-            timeout:
-                type: integer
-                description: The amount of time for the actor to perform the operation.
-                required: true
-            retries:
-                type: integer
-                description: The number of retries the actor should attempt to perform the operation.
-                required: true
-                default: 0
-            success:
-                type: string
-                description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
-                required: false
-                default: final_success
-            failure:
-                type: string
-                description: Points to the operation to invoke on Actor operation failure.
-                required: false
-                default: final_failure
-            failure_timeout:
-                type: string
-                description: Points to the operation to invoke when the time out for the operation occurs.
-                required: false
-                default: final_failure_timeout
-            failure_retries:
-                type: string
-                description: Points to the operation to invoke when the current operation has exceeded its max retries.
-                required: false
-                default: final_failure_retries
-            failure_exception:
-                type: string
-                description: Points to the operation to invoke when the current operation causes an exception.
-                required: false
-                default: final_failure_exception
-            failure_guard:
-                type: string
-                description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.
-                required: false
-                default: final_failure_guard
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml
deleted file mode 100644
index a0c5b24..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.operational.common.Apex:
-        derived_from: onap.policies.controlloop.operational.Common
-        type_version: 1.0.0
-        version: 1.0.0
-        name: onap.policies.controlloop.operational.common.Apex
-        description: Operational policies for Apex PDP
-        properties:
-            engineServiceParameters:
-                type: string
-                description: The engine parameters like name, instanceCount, policy implementation, parameters etc.
-                required: true
-            eventInputParameters:
-                type: string
-                description: The event input parameters.
-                required: true
-            eventOutputParameters:
-                type: string
-                description: The event output parameters.
-                required: true
-            javaProperties:
-                type: string
-                description: Name/value pairs of properties to be set for APEX if needed.
-                required: false
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.common.Drools.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.common.Drools.yaml
deleted file mode 100644
index 69d73db..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.controlloop.operational.common.Drools.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.controlloop.operational.common.Drools:
-        derived_from: onap.policies.controlloop.operational.Common
-        type_version: 1.0.0
-        version: 1.0.0
-        name: onap.policies.controlloop.operational.common.Drools
-        description: Operational policies for Drools PDP
-        properties:
-            controllerName:
-                type: string
-                description: Drools controller properties
-                required: false
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-pm-mapper.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-pm-mapper.yaml
deleted file mode 100644
index c50392e..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-pm-mapper.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.Monitoring:
-      derived_from: tosca.policies.Root
-      version: 1.0.0
-      name: onap.policies.Monitoring
-      description: a base policy type for all policies that govern monitoring provisioning
-   onap.policies.monitoring.dcae-pm-mapper:
-      derived_from: onap.policies.Monitoring
-      version: 1.0.0
-      properties:
-         pm-mapper-filter:
-            type: map
-            description: PM mapper filter on measInfo, measInfoId, measType, instanceId
-            entry_schema:
-               type: onap.datatypes.monitoring.pm-mapper-filter
-data_types:
-   onap.datatypes.monitoring.pm-mapper-filter:
-      derived_from: tosca.datatypes.Root
-      properties:
-         filters:
-            type: list
-            description: Filter configuration
-            #default: []
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.filters
-   onap.datatypes.monitoring.filters:
-      derived_from: tosca.datatypes.Root
-      properties:
-         pmDefVsn:
-            type: string
-            description: PM Dictionary version
-            required: true
-         nfType:
-            type: string
-            description: NF type
-            required: true
-         vendor:
-            type: string
-            description: Vendor name
-            required: true
-         measTypes:
-            type: list
-            description: Measurement types to collect
-            #default: []
-            required: true
-            entry_schema:
-               type: string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-pm-subscription-handler.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-pm-subscription-handler.yaml
deleted file mode 100644
index 8ac9b74..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-pm-subscription-handler.yaml
+++ /dev/null
@@ -1,132 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.Monitoring:
-      derived_from: tosca.policies.Root
-      version: 1.0.0
-      name: onap.policies.Monitoring
-      description: a base policy type for all policies that govern monitoring provisioning
-   onap.policies.monitoring.dcae-pm-subscription-handler:
-      derived_from: onap.policies.Monitoring
-      version: 1.0.0
-      properties:
-         subscription:
-            type: map
-            description: PM Subscription Handler Subscription
-            entry_schema:
-               type: onap.datatypes.monitoring.subscription
-data_types:
-   onap.datatypes.monitoring.subscription:
-      derived_from: tosca.datatypes.Root
-      properties:
-         subscriptionName:
-            type: string
-            description: Name of the subscription
-            required: true
-         administrativeState:
-            type: string
-            description: State of the subscription
-            required: true
-            constraints:
-            -  valid_values:
-               - LOCKED
-               - UNLOCKED
-         fileBasedGP:
-            type: integer
-            description: File based granularity period
-            required: true
-         fileLocation:
-            type: string
-            description: ROP file location
-            required: true
-         nfTypeModelInvariantId:
-            type: string
-            description: Network function invariant ID
-            required: true
-         nfFilter:
-            type: map
-            description: Network function filter
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.nfFilter
-         measurementGroups:
-            type: list
-            description: Measurement Groups
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.measurementGroups
-   onap.datatypes.monitoring.nfFilter:
-      derived_from: tosca.datatypes.Root
-      properties:
-         nfNames:
-            type: list
-            description: List of network functions
-            required: true
-            #default: []
-            entry_schema:
-               type: string
-         swVersions:
-            type: list
-            description: List of software versions
-            required: true
-            #default: []
-            entry_schema:
-               type: string
-   onap.datatypes.monitoring.measurementGroups:
-      derived_from: tosca.datatypes.Root
-      properties:
-         measurementGroup:
-            type: map
-            description: Measurement Group
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.measurementGroup
-   onap.datatypes.monitoring.measurementGroup:
-      derived_from: tosca.datatypes.Root
-      properties:
-         measurementTypes:
-            type: list
-            description: List of measurement types
-            required: true
-            #default: []
-            entry_schema:
-               type: onap.datatypes.monitoring.measurementTypes
-         managedObjectDNsBasic:
-            type: list
-            description: List of managed object distinguished names
-            required: true
-            #default: []
-            entry_schema:
-               type: onap.datatypes.monitoring.managedObjectDNsBasics
-   onap.datatypes.monitoring.measurementTypes:
-      derived_from: tosca.datatypes.Root
-      properties:
-         measurementType:
-            type: map
-            description: Measurement type object
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.measurementType
-   onap.datatypes.monitoring.measurementType:
-      derived_from: tosca.datatypes.Root
-      properties:
-         measurementType:
-            type: string
-            description: Measurement type
-            required: true
-   onap.datatypes.monitoring.managedObjectDNsBasics:
-      derived_from: tosca.datatypes.Root
-      properties:
-         managedObjectDNsBasic:
-            type: map
-            description: Managed object distinguished name object
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.managedObjectDNsBasic
-   onap.datatypes.monitoring.managedObjectDNsBasic:
-      derived_from: tosca.datatypes.Root
-      properties:
-         DN:
-            type: string
-            description: Managed object distinguished name
-            required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-restconfcollector.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-restconfcollector.yaml
deleted file mode 100644
index 58e60e9..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcae-restconfcollector.yaml
+++ /dev/null
@@ -1,128 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.Monitoring:
-      derived_from: tosca.policies.Root
-      version: 1.0.0
-      name: onap.policies.Monitoring
-      description: a base policy type for all policies that govern monitoring provisioning
-   onap.policies.monitoring.dcae-restconfcollector:
-      derived_from: onap.policies.Monitoring
-      version: 1.0.0
-      properties:
-         rcc_policy:
-            type: list
-            description: RCC Policy JSON
-            entry_schema:
-               type: onap.datatypes.monitoring.rcc_policy
-data_types:
-   onap.datatypes.monitoring.rcc_policy:
-      derived_from: tosca.datatypes.Root
-      properties:
-         controller_name:
-            type: string
-            description: Name of controller
-            required: true
-         controller_restapiUrl:
-            type: string
-            description: Controller's ip and port
-            required: true
-         controller_restapiUser:
-            type: string
-            description: Controller's username
-            required: true
-         controller_restapiPassword:
-            type: string
-            description: Controller's password
-            required: true
-         controller_accessTokenUrl:
-            type: string
-            description: URL to get access token
-            required: true
-         controller_accessTokenFile:
-            type: string
-            description: Access token file path
-            required: true
-         controller_accessTokenMethod:
-            type: string
-            description: Access token method POST/GET/PUT etc
-            required: true
-            constraints:
-            -  valid_values:
-               - post
-               - get
-               - put
-         controller_subsMethod:
-            type: string
-            description: Subscription method POST/GET/PUT etc
-            required: true
-            default: post
-            constraints:
-            -  valid_values:
-               - post
-               - get
-               - put
-         controller_subscriptionUrl:
-            type: string
-            description: URL to establish subscription
-            required: true
-         controller_disableSsl:
-            type: boolean
-            description: Option to disable ssl
-            required: true
-            default: true
-         event_details:
-            type: list
-            description: event details
-            required: true
-            entry_schema:
-               type: onap.datatypes.monitoring.rcc_event_details
-   onap.datatypes.monitoring.rcc_event_details:
-      derived_from: tosca.datatypes.Root
-      properties:
-         event_name:
-            type: string
-            description: event name
-            required: true
-         event_description:
-            type: string
-            description: description of event
-            required: false
-         event_sseventUrlEmbed:
-            type: boolean
-            description: Whether SSE url is embedded in subscription response
-            required: true
-            default: true
-         event_sseventsField:
-            type: string
-            description: Field name to access SSE url in subscription response
-            required: true
-         event_sseventsUrl:
-            type: string
-            description: Explicit SSE url
-            required: true
-         event_subscriptionTemplate:
-            type: string
-            description: Subscription template file path
-            required: true
-         event_unSubscriptionTemplate:
-            type: string
-            description: Unsubscription template file path
-            required: false
-         event_ruleId:
-            type: integer
-            description: Rule Id
-            required: false
-         modifyData:
-            type: boolean
-            description: Whether to modify the received SSE event
-            required: true
-            default: false
-         modifyMethod:
-            type: string
-            description: The java method name to modify data
-            required: false
-         userData:
-            type: string
-            description: The user specific data
-            required: false
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml
deleted file mode 100644
index 408e8cd..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.Monitoring:
-      derived_from: tosca.policies.Root
-      description: a base policy type for all policies that govern monitoring provisioning
-      version: 1.0.0
-      name: onap.policies.Monitoring
-   onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server:
-      derived_from: onap.policies.Monitoring
-      version: 1.0.0
-      name: onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server
-      properties:
-         buscontroller_feed_publishing_endpoint:
-            type: string
-            description: DMAAP Bus Controller feed endpoint
-         datafile.policy:
-            type: string
-            description: datafile Policy JSON as string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.tcagen2.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.tcagen2.yaml
deleted file mode 100644
index 04026b3..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.monitoring.tcagen2.yaml
+++ /dev/null
@@ -1,161 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.Monitoring:
-      derived_from: tosca.policies.Root
-      version: 1.0.0
-      name: onap.policies.Monitoring
-      description: a base policy type for all policies that govern monitoring provisioning
-   onap.policies.monitoring.tcagen2:
-      derived_from: onap.policies.Monitoring
-      version: 1.0.0
-      name: onap.policies.monitoring.tcagen2
-      properties:
-         tca.policy:
-            type: onap.datatypes.monitoring.tca_policy
-            description: TCA Policy JSON
-            required: true
-data_types:
-   onap.datatypes.monitoring.metricsPerEventName:
-      derived_from: tosca.datatypes.Root
-      properties:
-         controlLoopSchemaType:
-            type: string
-            required: true
-            description: Specifies Control Loop Schema Type for the event Name e.g. VNF, VM
-            constraints:
-            -  valid_values:
-               - VM
-               - VNF
-         eventName:
-            type: string
-            required: true
-            description: Event name to which thresholds need to be applied
-         policyName:
-            type: string
-            required: true
-            description: TCA Policy Scope Name
-         policyScope:
-            type: string
-            required: true
-            description: TCA Policy Scope
-         policyVersion:
-            type: string
-            required: true
-            description: TCA Policy Scope Version
-         thresholds:
-            type: list
-            required: true
-            description: Thresholds associated with eventName
-            entry_schema:
-               type: onap.datatypes.monitoring.thresholds
-   onap.datatypes.monitoring.tca_policy:
-      derived_from: tosca.datatypes.Root
-      properties:
-         domain:
-            type: string
-            required: true
-            description: Domain name to which TCA needs to be applied
-            default: measurementsForVfScaling
-            constraints:
-            -  equal: measurementsForVfScaling
-         metricsPerEventName:
-            type: list
-            required: true
-            description: Contains eventName and threshold details that need to be applied to given eventName
-            entry_schema:
-               type: onap.datatypes.monitoring.metricsPerEventName
-   onap.datatypes.monitoring.thresholds:
-      derived_from: tosca.datatypes.Root
-      properties:
-         closedLoopControlName:
-            type: string
-            required: true
-            description: Closed Loop Control Name associated with the threshold
-         closedLoopEventStatus:
-            type: string
-            required: true
-            description: Closed Loop Event Status of the threshold
-            constraints:
-            -  valid_values:
-               - ONSET
-               - ABATED
-         direction:
-            type: string
-            required: true
-            description: Direction of the threshold
-            constraints:
-            -  valid_values:
-               - LESS
-               - LESS_OR_EQUAL
-               - GREATER
-               - GREATER_OR_EQUAL
-               - EQUAL
-         fieldPath:
-            type: string
-            required: true
-            description: Json field Path as per CEF message which needs to be analyzed for TCA
-            constraints:
-            -  valid_values:
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait
-               - $.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage
-               - $.event.measurementsForVfScalingFields.meanRequestLatency
-               - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered
-               - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached
-               - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured
-               - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree
-               - $.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed
-               - $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value
-         severity:
-            type: string
-            required: true
-            description: Threshold Event Severity
-            constraints:
-            -  valid_values:
-               - CRITICAL
-               - MAJOR
-               - MINOR
-               - WARNING
-               - NORMAL
-         thresholdValue:
-            type: integer
-            required: true
-            description: Threshold value for the field Path inside CEF message
-         version:
-            type: string
-            required: true
-            description: Version number associated with the threshold
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Apex.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Apex.yaml
deleted file mode 100644
index d2a7632..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Apex.yaml
+++ /dev/null
@@ -1,203 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.Native:
-        derived_from: tosca.policies.Root
-        description: a base policy type for all native PDP policies
-        version: 1.0.0
-        name: onap.policies.Native
-    onap.policies.native.Apex:
-        derived_from: onap.policies.Native
-        description: a policy type for native apex policies
-        version: 1.0.0
-        name: onap.policies.native.Apex
-        properties:
-            engine_service:
-                type: onap.datatypes.native.apex.EngineService
-                description: APEX Engine Service Parameters
-            inputs:
-                type: map
-                description: Inputs for handling events coming into the APEX engine
-                entry_schema:
-                    type: onap.datatypes.native.apex.EventHandler
-            outputs:
-                type: map
-                description: Outputs for handling events going out of the APEX engine
-                entry_schema:
-                    type: onap.datatypes.native.apex.EventHandler
-            environment:
-                type: list
-                description: Envioronmental parameters for the APEX engine
-                entry_schema:
-                    type: onap.datatypes.native.apex.Environment
-
-data_types:
-    onap.datatypes.native.apex.EngineService:
-        derived_from: tosca.datatypes.Root
-        properties:
-            name:
-                type: string
-                description: Specifies the engine name
-                required: false
-                default: "ApexEngineService"
-            version:
-                type: string
-                description: Specifies the engine version in double dotted format
-                required: false
-                default: "1.0.0"
-            id:
-                type: integer
-                description: Specifies the engine id
-                required: true
-            instance_count:
-                type: integer
-                description: Specifies the number of engine threads that should be run
-                required: true
-            deployment_port:
-                type: integer
-                description: Specifies the port to connect to for engine administration
-                required: false
-                default: 1
-            policy_model_file_name:
-                type: string
-                description: The name of the file from which to read the APEX policy model
-                required: false
-            policy_type_impl:
-                type: string
-                description: The policy type implementation from which to read the APEX policy model
-                required: false
-            periodic_event_period:
-                type: string
-                description: The time interval in milliseconds for the periodic scanning event, 0 means don't scan
-                required: false
-            engine:
-                type: onap.datatypes.native.apex.engineservice.Engine
-                description: The parameters for all engines in the APEX engine service
-                required: true
-    onap.datatypes.native.apex.EventHandler:
-        derived_from: tosca.datatypes.Root
-        properties:
-            name:
-                type: string
-                description: Specifies the event handler name, if not specified this is set to the key name
-                required: false
-            carrier_technology:
-                type: onap.datatypes.native.apex.CarrierTechnology
-                description: Specifies the carrier technology of the event handler (such as REST/Web Socket/Kafka)
-                required: true
-            event_protocol:
-                type: onap.datatypes.native.apex.EventProtocol
-                description: Specifies the event protocol of events for the event handler (such as Yaml/JSON/XML/POJO)
-                required: true
-            event_name:
-                type: string
-                description: Specifies the event name for events on this event handler, if not specified, the event name is read from or written to the event being received or sent
-                required: false
-            event_name_filter:
-                type: string
-                description: Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through
-                required: false
-            synchronous_mode:
-                type: boolean
-                description: Specifies the event handler is syncronous (receive event and send response)
-                required: false
-                default: false
-            synchronous_peer:
-                type: string
-                description: The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode
-                required: false
-            synchronous_timeout:
-                type: integer
-                description: The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode
-                required: false
-            requestor_mode:
-                type: boolean
-                description: Specifies the event handler is in requestor mode (send event and wait for response mode)
-                required: false
-                default: false
-            requestor_peer:
-                type: string
-                description: The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode
-                required: false
-            requestor_timeout:
-                type: integer
-                description: The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode
-                required: false
-    onap.datatypes.native.apex.CarrierTechnology:
-        derived_from: tosca.datatypes.Root
-        properties:
-            label:
-                type: string
-                description: The label (name) of the carrier technology (such as REST, Kafka, WebSocket)
-                required: true
-            plugin_parameter_class_name:
-                type: string
-                description: The class name of the class that overrides default handling of event input or output for this carrier technology, defaults to the supplied input or output class
-                required: false
-    onap.datatypes.native.apex.EventProtocol:
-        derived_from: tosca.datatypes.Root
-        properties:
-            label:
-                type: string
-                description: The label (name) of the event protocol (such as Yaml, JSON, XML, or POJO)
-                required: true
-            event_protocol_plugin_class:
-                type: string
-                description: The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class
-                required: false
-    onap.datatypes.native.apex.Environment:
-        derived_from: tosca.datatypes.Root
-        properties:
-            name:
-                type: string
-                description: The name of the environment variable
-                required: true
-            value:
-                type: string
-                description: The value of the environment variable
-                required: true
-    onap.datatypes.native.apex.engineservice.Engine:
-        derived_from: tosca.datatypes.Root
-        properties:
-            context:
-                type: onap.datatypes.native.apex.engineservice.engine.Context
-                description: The properties for handling context in APEX engines, defaults to using Java maps for context
-                required: false
-            executors:
-                type: map
-                description: The plugins for policy executors used in engines such as javascript, MVEL, Jython
-                required: true
-                entry_schema:
-                    description: The plugin class path for this policy executor
-                    type: string
-    onap.datatypes.native.apex.engineservice.engine.Context:
-        derived_from: tosca.datatypes.Root
-        properties:
-            distributor:
-                type: onap.datatypes.native.apex.Plugin
-                description: The plugin to be used for distributing context between APEX PDPs at runtime
-                required: false
-            schemas:
-                type: map
-                description: The plugins for context schemas available in APEX PDPs such as Java and Avro
-                required: false
-                entry_schema:
-                    type: onap.datatypes.native.apex.Plugin
-            locking:
-                type: onap.datatypes.native.apex.Plugin
-                description: The plugin to be used for locking context in and between APEX PDPs at runtime
-                required: false
-            persistence:
-                type: onap.datatypes.native.apex.Plugin
-                description: The plugin to be used for persisting context for APEX PDPs at runtime
-                required: false
-    onap.datatypes.native.apex.Plugin:
-        derived_from: tosca.datatypes.Root
-        properties:
-            name:
-                type: string
-                description: The name of the executor such as Javascript, Jython or MVEL
-                required: true
-            plugin_class_name:
-                type: string
-                description: The class path of the plugin class for this executor
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Drools.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Drools.yaml
deleted file mode 100644
index 0ae96db..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Drools.yaml
+++ /dev/null
@@ -1,118 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.Native:
-        derived_from: tosca.policies.Root
-        description: a base policy type for all native PDP policies
-        version: 1.0.0
-        name: onap.policies.Native
-    onap.policies.native.Drools:
-        derived_from: onap.policies.Native
-        description: a base policy type for all native PDP policies
-        version: 1.0.0
-        name: onap.policies.native.Drools
-    onap.policies.native.drools.Controller:
-        derived_from: onap.policies.native.Drools
-        description: a policy type for a drools controller configuration
-        version: 1.0.0
-        name: onap.policies.native.drools.Controller
-        properties:
-            controllerName:
-                type: string
-                required: true
-                description: the drools controller name
-            sourceTopics:
-                type: list
-                required: false
-                description: source topics and applicable events
-                entry_schema:
-                    type: onap.datatypes.dmaap.topic
-            sinkTopics:
-                type: list
-                required: false
-                description: sink topics and applicable events
-                entry_schema:
-                    type: onap.datatypes.dmaap.topic
-            customConfig:
-                type: map
-                required: false
-                description: any use case specific configurations relevant to the drools controller
-                entry_schema:
-                    type: string
-    onap.policies.native.drools.Artifact:
-        derived_from: onap.policies.native.Drools
-        description: a policy type for native drools artifact policies
-        version: 1.0.0
-        name: onap.policies.native.drools.Artifact
-        properties:
-            rulesArtifact:
-                type: onap.datatypes.native.rules_artifact
-                required: true
-                description: the GAV information of the maven artifact
-            controller:
-                type: onap.datatypes.drools.controller.relation
-                required: true
-                description: the drools controller to which the current native policy is assigned
-
-data_types:
-    onap.datatypes.dmaap.topic:
-        derived_from: tosca.datatypes.Root
-        properties:
-            topicName:
-                type: string
-                required: true
-                description: the dmaap topic name
-            events:
-                type: list
-                required: true
-                description: events used by this topic
-                entry_schema:
-                    type: onap.datatypes.dmaap.events
-    onap.datatypes.dmaap.events:
-        derived_from: tosca.datatypes.Root
-        properties:
-            eventClass:
-                type: string
-                required: true
-                description: the event canonical class for serialization
-            eventFilter:
-                type: string
-                required: false
-                description: the JSONPath based condition to filter out the events to serialize
-            customSerialization:
-                type: onap.datatypes.dmaap.custom_serialization
-                required: false
-                description:  overrides the default serialization/deserialization mechanisms with custom ones
-    onap.datatypes.dmaap.custom_serialization:
-        derived_from: tosca.datatypes.Root
-        properties:
-            customSerializerClass:
-                type: string
-                required: true
-                description: the class that contains the JSON parser serializer/deserializer.
-            jsonParser:
-                type: string
-                required: true
-                description: static field in customSerialized class with the json parser (currently only gson supported)
-    onap.datatypes.native.rules_artifact:
-        derived_from: tosca.datatypes.Root
-        properties:
-            groupId:
-                type: string
-                required: true
-                description: the groupId of the maven artifact
-            artifactId:
-                type: string
-                required: true
-                description: the artifactId of the maven artifact
-            version:
-                type: string
-                required: true
-                description: the version of the maven artifact
-    onap.datatypes.drools.controller.relation:
-        derived_from: tosca.datatypes.Root
-        properties:
-            name:
-                type: string
-                required: true
-                description: the name of drools controller policy
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Xacml.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Xacml.yaml
deleted file mode 100644
index eb25cdb..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.native.Xacml.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.Native:
-        derived_from: tosca.policies.Root
-        description: a base policy type for all native PDP policies
-        version: 1.0.0
-        name: onap.policies.Native
-    onap.policies.native.Xacml:
-        derived_from: onap.policies.Native
-        description: a policy type for native xacml policies
-        version: 1.0.0
-        name: onap.policies.native.Xacml
-        properties:
-            policy:
-                type: string
-                required: true
-                description: The XML XACML 3.0 PolicySet or Policy
-                metadata:
-                    encoding: Base64
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.Resource.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.Resource.yaml
deleted file mode 100644
index 6b3a246..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.Resource.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.Resource:
-      derived_from: onap.policies.Optimization
-      version: 1.0.0
-      name: onap.policies.optimization.Resource
-      description: The base policy type for all policies that govern optimization for a Resource in a Service.
-      properties:
-         services:
-            description: One or more services that the policy applies to.
-            type: list
-            metadata:
-               matchable: true
-            required: true
-            entry_schema:
-               type: string
-         resources:
-            description: One or more VNF resources that the policy applies to.
-            type: list
-            metadata:
-               matchable: true
-            required: true
-            entry_schema:
-               type: string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.Service.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.Service.yaml
deleted file mode 100644
index 8b37a67..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.Service.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.Service:
-      derived_from: onap.policies.Optimization
-      version: 1.0.0
-      name: onap.policies.optimization.Service
-      description: The base policy type for all policies that govern optimization for a Service.
-      properties:
-         services:
-            description: One or more services that the policy applies to.
-            type: list
-            metadata:
-               matchable: true
-            required: true
-            entry_schema:
-               type: string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml
deleted file mode 100644
index bb6adb0..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.AffinityPolicy:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.AffinityPolicy
-      properties:
-         applicableResources:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - any
-                  - all
-         affinityProperties:
-            type: policy.data.affinityProperties_properties
-            required: true
-data_types:
-   policy.data.affinityProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         qualifier:
-            type: string
-            constraints:
-            -  valid_values:
-               - same
-               - different
-         category:
-            type: string
-            required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.DistancePolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.DistancePolicy.yaml
deleted file mode 100644
index f41dcfd..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.DistancePolicy.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.DistancePolicy:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.DistancePolicy
-      properties:
-         applicableResources:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - any
-                  - all
-         distanceProperties:
-            type: policy.data.distanceProperties_properties
-            required: true
-data_types:
-   policy.data.distanceProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         locationInfo:
-            type: string
-            required: true
-         distance:
-            type: policy.data.distance_properties
-            required: true
-            entry_schema:
-               type: policy.data.distance_properties
-   policy.data.distance_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         value:
-            type: string
-            required: true
-         operator:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - <
-                  - <=
-                  - '>'
-                  - '>='
-                  - =
-         unit:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - km
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.HpaPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.HpaPolicy.yaml
deleted file mode 100644
index dfe3077..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.HpaPolicy.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.HpaPolicy:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.HpaPolicy
-      properties:
-         flavorFeatures:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.flavorFeatures_properties
-data_types:
-   policy.data.flavorFeatures_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         id:
-            type: string
-            required: true
-         type:
-            type: string
-            required: true
-         directives:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.directives_properties
-         flavorProperties:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.flavorProperties_properties
-   policy.data.directives_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         type:
-            type: string
-         attributes:
-            type: list
-            entry_schema:
-               type: policy.data.directives_attributes_properties
-   policy.data.directives_attributes_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         attribute_name:
-            type: string
-         attribute_value:
-            type: string
-   policy.data.flavorProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         hpa-feature:
-            type: string
-            required: true
-         mandatory:
-            type: string
-            required: true
-         score:
-            type: string
-            required: false
-         architecture:
-            type: string
-            required: true
-         hpa-version:
-            type: string
-            required: true
-         directives:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.directives_properties
-         hpa-feature-attributes:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.hpa-feature-attributes_properties
-   policy.data.hpa-feature-attributes_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         hpa-attribute-key:
-            type: string
-            required: true
-         hpa-attribute-value:
-            type: string
-            required: true
-         operator:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - <
-                  - <=
-                  - '>'
-                  - '>='
-                  - =
-                  - '!='
-                  - any
-                  - all
-                  - subset
-         unit:
-            type: string
-            required: false
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.OptimizationPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.OptimizationPolicy.yaml
deleted file mode 100644
index b0f77d6..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.OptimizationPolicy.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.OptimizationPolicy:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.OptimizationPolicy
-      properties:
-         objective:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - minimize
-                  - maximize
-         objectiveParameter:
-            type: policy.data.objectiveParameter_properties
-            required: true
-data_types:
-   policy.data.objectiveParameter_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         parameterAttributes:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.parameterAttributes_properties
-         operator:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - '*'
-                  - +
-                  - '-'
-                  - /
-                  - '%'
-   policy.data.parameterAttributes_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         resources:
-            type: string
-            required: true
-         customerLocationInfo:
-            type: string
-            required: true
-         parameter:
-            type: string
-            required: true
-         weight:
-            type: string
-            required: true
-         operator:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - '*'
-                  - +
-                  - '-'
-                  - /
-                  - '%'
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.PciPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.PciPolicy.yaml
deleted file mode 100644
index e636582..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.PciPolicy.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.PciPolicy:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.PciPolicy
-      properties:
-         pciProperties:
-            type: list
-            required: false
-            entry_schema:
-               type: policy.data.pciProperties_properties
-data_types:
-   policy.data.pciProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         algoCategory:
-            type: string
-            required: false
-         pciOptmizationAlgoName:
-            type: string
-            required: false
-         pciOptimizationNwConstraint:
-            type: string
-            required: false
-         pciOptimizationPriority:
-            type: string
-            required: false
-         pciOptimizationTimeConstraint:
-            type: string
-            required: false
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.Vim_fit.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.Vim_fit.yaml
deleted file mode 100644
index cb387dd..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.Vim_fit.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.Vim_fit:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.Vim_fit
-      properties:
-         applicableResources:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - any
-                  - all
-         capacityProperties:
-            type: policy.data.capacityProperties_properties
-            required: true
-data_types:
-   policy.data.capacityProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         controller:
-            type: string
-            required: true
-         request:
-            type: string
-            required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.VnfPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.VnfPolicy.yaml
deleted file mode 100644
index 30b8b72..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.resource.VnfPolicy.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.resource.VnfPolicy:
-      derived_from: onap.policies.optimization.Resource
-      version: 1.0.0
-      name: onap.policies.optimization.resource.VnfPolicy
-      properties:
-         applicableResources:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - any
-                  - all
-         vnfProperties:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.vnfProperties_properties
-data_types:
-   policy.data.vnfProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         inventoryProvider:
-            type: string
-            required: true
-         serviceType:
-            type: string
-            required: true
-         inventoryType:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-               constraints:
-               -  valid_values:
-                  - serviceInstanceId
-                  - vnfName
-                  - cloudRegionId
-                  - vimId
-         customerId:
-            type: string
-            required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.service.QueryPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.service.QueryPolicy.yaml
deleted file mode 100644
index 2ff263b..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.service.QueryPolicy.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-   onap.policies.optimization.service.QueryPolicy:
-      derived_from: onap.policies.optimization.Service
-      version: 1.0.0
-      name: onap.policies.optimization.service.QueryPolicy
-      properties:
-         queryProperties:
-            type: list
-            required: true
-            entry_schema:
-               type: policy.data.queryProperties_properties
-data_types:
-   policy.data.queryProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         attribute:
-            type: string
-            required: true
-         value:
-            type: string
-            required: true
-         attribute_location:
-            type: string
-            required: true
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml
deleted file mode 100644
index 81dea2c..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_1_0
-policy_types:
-    onap.policies.optimization.service.SubscriberPolicy:
-        derived_from: onap.policies.optimization.Service
-        version: 1.0.0
-        name: onap.policies.optimization.service.SubscriberPolicy
-        properties:
-            subscriberProperties:
-                type: policy.data.subscriberProperties_properties
-                required: true
-data_types:
-    policy.data.subscriberProperties_properties:
-        derived_from: tosca.nodes.Root
-        properties:
-            subscriberName:
-                type: list
-                required: true
-                metadata:
-                    contextProvider: true
-                entry_schema:
-                    type: string
-            subscriberRole:
-                type: list
-                required: true
-                metadata:
-                    contextMatchable: scope
-                entry_schema:
-                    type: string
-            provStatus:
-                type: list
-                required: true
-                metadata:
-                    contextAttribute: true
-                entry_schema:
-                    type: string
-
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/utils/servicetemplates/pm_automation_composition_tosca.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/utils/servicetemplates/pm_automation_composition_tosca.yaml
new file mode 100644
index 0000000..3d14cf5
--- /dev/null
+++ b/participant/participant-impl/participant-impl-policy/src/test/resources/utils/servicetemplates/pm_automation_composition_tosca.yaml
@@ -0,0 +1,164 @@
+tosca_definitions_version: tosca_simple_yaml_1_3
+data_types:
+  onap.datatypes.ToscaConceptIdentifier:
+    derived_from: tosca.datatypes.Root
+    properties:
+      name:
+        type: string
+        required: true
+      version:
+        type: string
+        required: true
+node_types:
+  org.onap.policy.clamp.acmParticipant:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+  org.onap.policy.clamp.acmAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+      participantType:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+      startPhase:
+        type: integer
+        required: false
+        constraints:
+        - greater-or-equal: 0
+        metadata:
+            common: true
+        description: A value indicating the start phase in which this automation composition element will be started,
+                     the first start phase is zero. Automation Composition Elements are started in their start_phase
+                     order and stopped in reverse start phase order. Automation Composition Elements with the same start
+                     phase are started and stopped simultaneously
+  org.onap.policy.clamp.acmAutomationComposition:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+      elements:
+        type: list
+        required: true
+        entry_schema:
+          type: onap.datatypes.ToscaConceptIdentifier
+  org.onap.policy.clamp.acmDCAEMicroserviceAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acmAutomationCompositionElement
+    properties:
+      dcae_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+  org.onap.policy.clamp.acmPolicyTypeAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acmAutomationCompositionElement
+    properties:
+      policy_type_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+  org.onap.policy.clamp.acmCDSAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acmAutomationCompositionElement
+    properties:
+      cds_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+topology_template:
+  node_templates:
+    org.onap.dcae.acmDCAEMicroserviceAutomationCompositionParticipant:
+      version: 2.3.4
+      type: org.onap.policy.clamp.acmParticipant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.policy.acmPolicyAutomationCompositionParticipant:
+      version: 2.3.1
+      type: org.onap.policy.clamp.acmParticipant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.ccsdk.cds.acmCdsAutomationCompositionParticipant:
+      version: 2.2.1
+      type: org.onap.policy.clamp.acmParticipant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acmDCAEMicroserviceAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for DCAE microservice for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.dcae.acmDCAEMicroserviceAutomationCompositionParticipant
+          version: 2.3.4
+        dcae_blueprint_id:
+          name: org.onap.dcae.blueprints.PMSHBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acmPolicyTypeAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for monitoring policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.acmPolicyAutomationCompositionParticipant
+          version: 2.3.1
+        policy_type_id:
+          name: onap.policies.monitoring.pm-subscription-handler
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acmPolicyTypeAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element, operational policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.acmPolicyAutomationCompositionParticipant
+          version: 2.3.1
+        policy_type_id:
+          name: onap.policies.operational.pm-subscription-handler
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acmAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for CDS for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.ccsdk.cds.acmCdsAutomationCompositionParticipant
+          version: 3.2.1
+        cds_blueprint_id:
+          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSHAutomationCompositionDefinition:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acmAutomationComposition
+      type_version: 1.0.0
+      description: Automation composition for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        elements:
+          - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement
+            version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-policy/src/test/resources/utils/servicetemplates/pm_control_loop_tosca.yaml b/participant/participant-impl/participant-impl-policy/src/test/resources/utils/servicetemplates/pm_control_loop_tosca.yaml
deleted file mode 100644
index 33b42b7..0000000
--- a/participant/participant-impl/participant-impl-policy/src/test/resources/utils/servicetemplates/pm_control_loop_tosca.yaml
+++ /dev/null
@@ -1,164 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_3
-data_types:
-  onap.datatypes.ToscaConceptIdentifier:
-    derived_from: tosca.datatypes.Root
-    properties:
-      name:
-        type: string
-        required: true
-      version:
-        type: string
-        required: true
-node_types:
-  org.onap.policy.clamp.controlloop.Participant:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-  org.onap.policy.clamp.controlloop.ControlLoopElement:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-      participantType:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-      startPhase:
-        type: integer
-        required: false
-        constraints:
-        - greater-or-equal: 0
-        metadata:
-            common: true
-        description: A value indicating the start phase in which this control loop element will be started, the
-                     first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
-                     in reverse start phase order. Control Loop Elements with the same start phase are started and
-                     stopped simultaneously
-  org.onap.policy.clamp.controlloop.ControlLoop:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-      elements:
-        type: list
-        required: true
-        entry_schema:
-          type: onap.datatypes.ToscaConceptIdentifier
-  org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      dcae_blueprint_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-  org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      policy_type_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-  org.onap.policy.clamp.controlloop.CDSControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      cds_blueprint_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-topology_template:
-  node_templates:
-    org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant:
-      version: 2.3.4
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.policy.controlloop.PolicyControlLoopParticipant:
-      version: 2.3.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant:
-      version: 2.2.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the DCAE microservice for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant
-          version: 2.3.4
-        dcae_blueprint_id:
-          name: org.onap.dcae.blueprints.PMSHBlueprint
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the monitoring policy for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.policy.controlloop.PolicyControlLoopParticipant
-          version: 2.3.1
-        policy_type_id:
-          name: onap.policies.monitoring.pm-subscription-handler
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the operational policy for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.policy.controlloop.PolicyControlLoopParticipant
-          version: 2.3.1
-        policy_type_id:
-          name: onap.policies.operational.pm-subscription-handler
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for CDS for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant
-          version: 3.2.1
-        cds_blueprint_id:
-          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSHControlLoopDefinition:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoop
-      type_version: 1.0.0
-      description: Control loop for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        elements:
-          - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
-            version: 1.2.3
-          - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement
-            version: 1.2.3
-          - name: org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement
-            version: 1.2.3
-          - name: org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement
-            version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-simulator/pom.xml b/participant/participant-impl/participant-impl-simulator/pom.xml
index c19e45e..5673cb7 100644
--- a/participant/participant-impl/participant-impl-simulator/pom.xml
+++ b/participant/participant-impl/participant-impl-simulator/pom.xml
@@ -31,7 +31,7 @@
 
     <artifactId>policy-clamp-participant-impl-simulator</artifactId>
     <name>${project.artifactId}</name>
-    <description>Participant simulator, used to test control loops</description>
+    <description>Participant simulator, used to test automation compositions</description>
 
     <build>
         <plugins>
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/ParticipantSimulatorApplication.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/ParticipantSimulatorApplication.java
similarity index 80%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/ParticipantSimulatorApplication.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/ParticipantSimulatorApplication.java
index 5e72d94..ea94795 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/ParticipantSimulatorApplication.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/ParticipantSimulatorApplication.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================

  */

 

-package org.onap.policy.clamp.controlloop.participant.simulator;

+package org.onap.policy.clamp.acm.participant.simulator;

 

 import org.springframework.boot.SpringApplication;

 import org.springframework.boot.autoconfigure.SpringBootApplication;

@@ -31,11 +31,11 @@
  */

 // @formatter:off

 @SpringBootApplication

-@ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.participant.simulator.main.parameters")

+@ConfigurationPropertiesScan("org.onap.policy.clamp.acm.participant.simulator.main.parameters")

 @ComponentScan({

-    "org.onap.policy.clamp.controlloop.participant.simulator",

-    "org.onap.policy.clamp.controlloop.participant.intermediary",

-    "org.onap.policy.clamp.controlloop.common.rest"

+    "org.onap.policy.clamp.acm.participant.simulator",

+    "org.onap.policy.clamp.acm.participant.intermediary",

+    "org.onap.policy.clamp.acm.common.rest"

 })

 //@formatter:on

 public class ParticipantSimulatorApplication {

diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/AafConfiguration.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/AafConfiguration.java
similarity index 89%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/AafConfiguration.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/AafConfiguration.java
index c8922a1..101e7fa 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/AafConfiguration.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/AafConfiguration.java
@@ -21,10 +21,10 @@
  *
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.config;
+package org.onap.policy.clamp.acm.participant.simulator.config;
 
 import javax.servlet.Filter;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.rest.ParticipantSimulatorAafFilter;
+import org.onap.policy.clamp.acm.participant.simulator.main.rest.ParticipantSimulatorAafFilter;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/ParticipantConfig.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/ParticipantConfig.java
similarity index 69%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/ParticipantConfig.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/ParticipantConfig.java
index f2079ed..92ced99 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/ParticipantConfig.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/ParticipantConfig.java
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.config;
+package org.onap.policy.clamp.acm.participant.simulator.config;
 
-import org.onap.policy.clamp.controlloop.common.rest.RequestResponseLoggingFilter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.handler.ControlLoopElementHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.simulator.main.handler.AutomationCompositionElementHandler;
+import org.onap.policy.clamp.common.acm.rest.RequestResponseLoggingFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
@@ -47,15 +47,15 @@
     }
 
     /**
-     * Register ControlLoopElementListener.
+     * Register AutomationCompositionElementListener.
      *
      * @param intermediaryApi the ParticipantIntermediaryApi
-     * @param clElementHandler the ControlLoop Element Handler
+     * @param acElementHandler the AutomationComposition Element Handler
      */
     @Autowired
-    public void registerControlLoopElementListener(ParticipantIntermediaryApi intermediaryApi,
-            ControlLoopElementHandler clElementHandler) {
-        intermediaryApi.registerControlLoopElementListener(clElementHandler);
-        clElementHandler.setIntermediaryApi(intermediaryApi);
+    public void registerAutomationCompositionElementListener(ParticipantIntermediaryApi intermediaryApi,
+            AutomationCompositionElementHandler acElementHandler) {
+        intermediaryApi.registerAutomationCompositionElementListener(acElementHandler);
+        acElementHandler.setIntermediaryApi(intermediaryApi);
     }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/SecurityConfig.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/SecurityConfig.java
similarity index 95%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/SecurityConfig.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/SecurityConfig.java
index cdfd5ea..c41c6e1 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/SecurityConfig.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/SecurityConfig.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.config;
+package org.onap.policy.clamp.acm.participant.simulator.config;
 
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/SpringFoxConfig.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/SpringFoxConfig.java
similarity index 89%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/SpringFoxConfig.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/SpringFoxConfig.java
index bf77614..d990981 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/SpringFoxConfig.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/SpringFoxConfig.java
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.config;
+package org.onap.policy.clamp.acm.participant.simulator.config;
 
-import org.onap.policy.clamp.controlloop.participant.simulator.simulation.rest.SimulationElementController;
+import org.onap.policy.clamp.acm.participant.simulator.simulation.rest.SimulationElementController;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import springfox.documentation.builders.PathSelectors;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/YamlConfiguration.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/YamlConfiguration.java
similarity index 91%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/YamlConfiguration.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/YamlConfiguration.java
index 28dd2f9..7186977 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/config/YamlConfiguration.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/config/YamlConfiguration.java
@@ -18,10 +18,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.config;
+package org.onap.policy.clamp.acm.participant.simulator.config;
 
 import java.util.List;
-import org.onap.policy.clamp.controlloop.common.rest.CoderHttpMesageConverter;
+import org.onap.policy.clamp.common.acm.rest.CoderHttpMesageConverter;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
 import org.springframework.http.converter.HttpMessageConverter;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/handler/AutomationCompositionElementHandler.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/handler/AutomationCompositionElementHandler.java
new file mode 100644
index 0000000..9e30c88
--- /dev/null
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/handler/AutomationCompositionElementHandler.java
@@ -0,0 +1,112 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.simulator.main.handler;
+
+import java.time.Instant;
+import java.util.UUID;
+import lombok.Setter;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class handles implementation of automationCompositionElement updates.
+ */
+@Component
+public class AutomationCompositionElementHandler implements AutomationCompositionElementListener {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(AutomationCompositionElementHandler.class);
+
+    @Setter
+    private ParticipantIntermediaryApi intermediaryApi;
+
+    /**
+     * Callback method to handle a automation composition element state change.
+     *
+     * @param automationCompositionElementId the ID of the automation composition element
+     * @param currentState the current state of the automation composition element
+     * @param newState the state to which the automation composition element is changing to
+     * @throws PfModelException in case of an exception
+     */
+    @Override
+    public void automationCompositionElementStateChange(ToscaConceptIdentifier automationCompositionId,
+        UUID automationCompositionElementId, AutomationCompositionState currentState,
+        AutomationCompositionOrderedState newState) throws PfModelException {
+        switch (newState) {
+            case UNINITIALISED:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.UNINITIALISED,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            case PASSIVE:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.PASSIVE,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            case RUNNING:
+                intermediaryApi.updateAutomationCompositionElementState(automationCompositionId,
+                    automationCompositionElementId, newState, AutomationCompositionState.RUNNING,
+                    ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE);
+                break;
+            default:
+                LOGGER.debug("Unknown orderedstate {}", newState);
+                break;
+        }
+    }
+
+    /**
+     * Callback method to handle an update on a automation composition element.
+     *
+     * @param element the information on the automation composition element
+     * @param acElementDefinition toscaNodeTemplate
+     * @throws PfModelException in case of an exception
+     */
+    @Override
+    public void automationCompositionElementUpdate(ToscaConceptIdentifier automationCompositionId,
+        AutomationCompositionElement element, ToscaNodeTemplate acElementDefinition) throws PfModelException {
+        intermediaryApi.updateAutomationCompositionElementState(automationCompositionId, element.getId(),
+            element.getOrderedState(), AutomationCompositionState.PASSIVE,
+            ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE);
+    }
+
+    @Override
+    public void handleStatistics(UUID automationCompositionElementId) throws PfModelException {
+        var acElement = intermediaryApi.getAutomationCompositionElement(automationCompositionElementId);
+        if (acElement != null) {
+            var acElementStatistics = new AcElementStatistics();
+            acElementStatistics.setState(acElement.getState());
+            acElementStatistics.setTimeStamp(Instant.now());
+            intermediaryApi.updateAutomationCompositionElementStatistics(automationCompositionElementId,
+                acElementStatistics);
+        }
+    }
+
+}
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/ParticipantSimulatorParameters.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/ParticipantSimulatorParameters.java
similarity index 83%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/ParticipantSimulatorParameters.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/ParticipantSimulatorParameters.java
index 9957900..8549e4c 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/ParticipantSimulatorParameters.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/ParticipantSimulatorParameters.java
@@ -18,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.parameters;
+package org.onap.policy.clamp.acm.participant.simulator.main.parameters;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.validation.annotation.Validated;
 
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/AbstractRestController.java
similarity index 78%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/AbstractRestController.java
index 5a6dbfa..4db07c9 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/AbstractRestController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/AbstractRestController.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.rest;
+package org.onap.policy.clamp.acm.participant.simulator.main.rest;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.BasicAuthDefinition;
@@ -27,26 +27,38 @@
 import io.swagger.annotations.SwaggerDefinition;
 import io.swagger.annotations.Tag;
 import java.net.HttpURLConnection;
+import java.util.UUID;
 import javax.ws.rs.core.MediaType;
 import lombok.AccessLevel;
 import lombok.Getter;
-import org.onap.policy.clamp.controlloop.participant.simulator.simulation.SimulationProvider;
+import org.onap.policy.clamp.acm.participant.simulator.simulation.SimulationProvider;
+import org.springframework.http.HttpHeaders;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 /**
  * Common superclass to provide REST endpoints for the participant simulator.
  */
 // @formatter:off
-@RequestMapping(value = "/v2", produces = {MediaType.APPLICATION_JSON, AbstractRestController.APPLICATION_YAML})
+@RequestMapping(
+    value = "/v2",
+    produces = {
+        MediaType.APPLICATION_JSON,
+        AbstractRestController.APPLICATION_YAML
+    }
+)
 @Api(value = "Participant Simulator API")
 @SwaggerDefinition(
-    info = @Info(description =
-                    "Participant Simulator", version = "v1.0",
-                    title = "Participant Simulator"),
+    info = @Info(
+        description = "Participant Simulator",
+        version = "v1.0",
+        title = "Participant Simulator"
+    ),
     consumes = {MediaType.APPLICATION_JSON, AbstractRestController.APPLICATION_YAML},
     produces = {MediaType.APPLICATION_JSON, AbstractRestController.APPLICATION_YAML},
     schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS},
-    tags = {@Tag(name = "participantsim", description = "Participant Simulator")},
+    tags = {
+        @Tag(name = "participantsim", description = "Participant Simulator")
+    },
     securityDefinition = @SecurityDefinition(basicAuthDefinitions = {@BasicAuthDefinition(key = "basicAuth")}))
 // @formatter:on
 public abstract class AbstractRestController {
@@ -86,8 +98,8 @@
     public static final String AUTHORIZATION_ERROR_MESSAGE = "Authorization Error";
     public static final String SERVER_ERROR_MESSAGE = "Internal Server Error";
 
-    @Getter(AccessLevel.PROTECTED)
     // The provider for simulation requests
+    @Getter(AccessLevel.PROTECTED)
     private SimulationProvider simulationProvider;
 
     /**
@@ -99,4 +111,20 @@
         this.simulationProvider = simulationProvider;
     }
 
+    /**
+     * Get the common headers for responses.
+     *
+     * @param requestId  the request ID
+     *
+     * @return the headers
+     */
+    protected HttpHeaders getCommonHeaders(UUID requestId) {
+        HttpHeaders commonHeaders = new HttpHeaders();
+        commonHeaders.add(VERSION_MINOR_NAME, API_VERSION.split("\\.")[1]);
+        commonHeaders.add(VERSION_PATCH_NAME, API_VERSION.split("\\.")[2]);
+        commonHeaders.add(VERSION_LATEST_NAME, API_VERSION);
+        commonHeaders.add(REQUEST_ID_NAME, (requestId != null ? requestId.toString() : null));
+
+        return commonHeaders;
+    }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/GlobalControllerExceptionHandler.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/GlobalControllerExceptionHandler.java
similarity index 73%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/GlobalControllerExceptionHandler.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/GlobalControllerExceptionHandler.java
index 8648c25..6971413 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/GlobalControllerExceptionHandler.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/GlobalControllerExceptionHandler.java
@@ -20,11 +20,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.rest;
+package org.onap.policy.clamp.acm.participant.simulator.main.rest;
 
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
-import org.onap.policy.clamp.controlloop.models.messages.rest.SimpleResponse;
-import org.onap.policy.clamp.controlloop.models.rest.RestUtils;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionException;
+import org.onap.policy.clamp.models.acm.messages.rest.SimpleResponse;
+import org.onap.policy.clamp.models.acm.rest.RestUtils;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
@@ -33,13 +33,13 @@
 public class GlobalControllerExceptionHandler {
 
     /**
-     * Handle ControlLoopException.
+     * Handle AutomationCompositionException.
      *
-     * @param ex ControlLoopException
+     * @param ex AutomationCompositionException
      * @return ResponseEntity
      */
-    @ExceptionHandler(ControlLoopException.class)
-    public ResponseEntity<SimpleResponse> handleBadRequest(ControlLoopException ex) {
+    @ExceptionHandler(AutomationCompositionException.class)
+    public ResponseEntity<SimpleResponse> handleBadRequest(AutomationCompositionException ex) {
         return RestUtils.toSimpleResponse(ex);
     }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/ParticipantErrorController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/ParticipantErrorController.java
similarity index 93%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/ParticipantErrorController.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/ParticipantErrorController.java
index 7554619..e32c572 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/ParticipantErrorController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/ParticipantErrorController.java
@@ -20,13 +20,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.rest;
+package org.onap.policy.clamp.acm.participant.simulator.main.rest;
 
 import java.util.Map;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.http.HttpServletRequest;
-import org.onap.policy.clamp.controlloop.models.messages.rest.SimpleResponse;
-import org.onap.policy.clamp.controlloop.models.messages.rest.TypedSimpleResponse;
+import org.onap.policy.clamp.models.acm.messages.rest.SimpleResponse;
+import org.onap.policy.clamp.models.acm.messages.rest.TypedSimpleResponse;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.web.error.ErrorAttributeOptions;
 import org.springframework.boot.web.servlet.error.ErrorAttributes;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/ParticipantSimulatorAafFilter.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/ParticipantSimulatorAafFilter.java
similarity index 95%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/ParticipantSimulatorAafFilter.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/ParticipantSimulatorAafFilter.java
index f200f97..3008d2d 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/ParticipantSimulatorAafFilter.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/ParticipantSimulatorAafFilter.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.rest;
+package org.onap.policy.clamp.acm.participant.simulator.main.rest;
 
 import org.onap.policy.common.endpoints.http.server.aaf.AafGranularAuthFilter;
 import org.onap.policy.common.utils.resources.MessageConstants;
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/SimulationProvider.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/SimulationProvider.java
new file mode 100644
index 0000000..73ae80e
--- /dev/null
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/SimulationProvider.java
@@ -0,0 +1,113 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.simulator.simulation;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionException;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.concepts.Participant;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.rest.TypedSimpleResponse;
+import org.springframework.stereotype.Service;
+
+/**
+ * This provider class simulation of participants and automation composition elements.
+ */
+@Service
+public class SimulationProvider {
+
+    private final ParticipantIntermediaryApi intermediaryApi;
+
+    /**
+     * Create a participant simulation provider.
+     *
+     * @param intermediaryApi the intermediary to use for talking to the CLAMP runtime
+     */
+    public SimulationProvider(ParticipantIntermediaryApi intermediaryApi) {
+        this.intermediaryApi = intermediaryApi;
+    }
+
+    /**
+     * Get the automation compositions.
+     *
+     * @param name the automationComposition, null to get all
+     * @param version the automationComposition, null to get all
+     * @return the automation compositions
+     * @throws AutomationCompositionException on errors getting the automation compositions
+     */
+    public AutomationCompositions getAutomationCompositions(String name, String version)
+        throws AutomationCompositionException {
+        return intermediaryApi.getAutomationCompositions(name, version);
+    }
+
+    /**
+     * Get the simulated automation composition elements.
+     *
+     * @param name the automationCompositionElement, null to get all
+     * @param version the automationCompositionElement, null to get all
+     * @return the automation composition elements
+     */
+    public Map<UUID, AutomationCompositionElement> getAutomationCompositionElements(String name, String version) {
+        return intermediaryApi.getAutomationCompositionElements(name, version);
+    }
+
+    /**
+     * Update the given automation composition element in the simulator.
+     *
+     * @param element the automation composition element to update
+     * @return response simple response returned
+     */
+    public TypedSimpleResponse<AutomationCompositionElement> updateAutomationCompositionElement(
+        AutomationCompositionElement element) {
+        TypedSimpleResponse<AutomationCompositionElement> response = new TypedSimpleResponse<>();
+        response.setResponse(intermediaryApi.updateAutomationCompositionElementState(null, element.getId(),
+            element.getOrderedState(), element.getState(), ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE));
+        return response;
+    }
+
+    /**
+     * Get the current simulated participants.
+     *
+     * @param name the participant, null to get all
+     * @param version the participant, null to get all
+     * @return the list of participants
+     */
+    public List<Participant> getParticipants(String name, String version) {
+        return intermediaryApi.getParticipants(name, version);
+    }
+
+    /**
+     * Update a simulated participant.
+     *
+     * @param participant the participant to update
+     * @return TypedSimpleResponse simple response
+     */
+    public TypedSimpleResponse<Participant> updateParticipant(Participant participant) {
+        TypedSimpleResponse<Participant> response = new TypedSimpleResponse<>();
+        response.setResponse(
+            intermediaryApi.updateParticipantState(participant.getDefinition(), participant.getParticipantState()));
+        return response;
+    }
+}
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/rest/SimulationElementController.java
similarity index 66%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/rest/SimulationElementController.java
index e0569cf..2776382 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationElementController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/rest/SimulationElementController.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.simulation.rest;
+package org.onap.policy.clamp.acm.participant.simulator.simulation.rest;
 
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -30,11 +30,11 @@
 import io.swagger.annotations.ResponseHeader;
 import java.util.Map;
 import java.util.UUID;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.messages.rest.TypedSimpleResponse;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.rest.AbstractRestController;
-import org.onap.policy.clamp.controlloop.participant.simulator.simulation.SimulationProvider;
+import org.onap.policy.clamp.acm.participant.simulator.main.rest.AbstractRestController;
+import org.onap.policy.clamp.acm.participant.simulator.simulation.SimulationProvider;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.messages.rest.TypedSimpleResponse;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -44,7 +44,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * Class to provide REST end points for participant simulator to query/update details of controlLoopElements.
+ * Class to provide REST end points for participant simulator to query/update details of automationCompositionElements.
  */
 @RestController
 public class SimulationElementController extends AbstractRestController {
@@ -59,22 +59,22 @@
     }
 
     /**
-     * Queries details of all control loop element within the simulator.
+     * Queries details of all automation composition element within the simulator.
      *
      * @param requestId request ID used in ONAP logging
-     * @param name the name of the Control Loop element to get, null to get all
-     * @param version the version of the Control Loop element to get, null to get all
-     * @return the control loop elements
+     * @param name the name of the Automation Composition element to get, null to get all
+     * @param version the version of the Automation Composition element to get, null to get all
+     * @return the automation composition elements
      */
     // @formatter:off
     @GetMapping("/elements/{name}/{version}")
     @ApiOperation(
-        value = "Query details of the requested simulated control loop elements",
-        notes = "Queries details of the requested simulated control loop elements, "
-                + "returning all control loop element details",
-        response = ControlLoops.class,
+        value = "Query details of the requested simulated automation composition elements",
+        notes = "Queries details of the requested simulated automation composition elements, "
+                + "returning all automation composition element details",
+        response = AutomationCompositions.class,
         tags = {
-            "Clamp Control Loop Participant Simulator API"
+            "Clamp Automation Composition Participant Simulator API"
         },
         authorizations = @Authorization(value = AUTHORIZATION_TYPE),
         responseHeaders = {
@@ -106,33 +106,35 @@
         }
     )
     // @formatter:on
-    public ResponseEntity<Map<UUID, ControlLoopElement>> elements(
-            @RequestHeader(
-                    name = REQUEST_ID_NAME,
-                    required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
-            @ApiParam(value = "Control loop element name", required = true) @PathVariable("name") String name,
-            @ApiParam(
-                    value = "Control loop element version",
-                    required = true) @PathVariable("version") String version) {
+    public ResponseEntity<Map<UUID, AutomationCompositionElement>> elements(
+        @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+        @ApiParam(value = "Automation composition element name", required = true) @PathVariable("name") String name,
+        @ApiParam(
+            value = "Automation composition element version",
+            required = true) @PathVariable("version") String version) {
 
-        return ResponseEntity.ok().body(getSimulationProvider().getControlLoopElements(name, version));
+        return ResponseEntity
+            .ok()
+            .headers(super.getCommonHeaders(requestId))
+            .body(getSimulationProvider().getAutomationCompositionElements(name, version));
     }
 
     /**
-     * Updates a control loop element in the simulator.
+     * Updates a automation composition element in the simulator.
      *
      * @param requestId request ID used in ONAP logging
-     * @param body the body of a control loop element
+     * @param body the body of a automation composition element
      * @return a response
      */
     // @formatter:off
     @PutMapping("/elements")
     @ApiOperation(
-            value = "Updates simulated control loop elements",
-            notes = "Updates simulated control loop elements, returning the updated control loop definition IDs",
+            value = "Updates simulated automation composition elements",
+            notes = "Updates simulated automation composition elements, "
+                + "returning the updated automation composition definition IDs",
             response = TypedSimpleResponse.class,
             tags = {
-                "Clamp Control Loop Participant Simulator API"
+                "Clamp Automation Composition Participant Simulator API"
                 },
             authorizations = @Authorization(value = AUTHORIZATION_TYPE),
             responseHeaders = {
@@ -172,12 +174,15 @@
             }
         )
     // @formatter:on
-    public ResponseEntity<TypedSimpleResponse<ControlLoopElement>> update(
-            @RequestHeader(
-                    name = REQUEST_ID_NAME,
-                    required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
-            @ApiParam(value = "Body of a control loop element", required = true) @RequestBody ControlLoopElement body) {
+    public ResponseEntity<TypedSimpleResponse<AutomationCompositionElement>> update(
+        @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
+        @ApiParam(
+            value = "Body of a automation composition element",
+            required = true) @RequestBody AutomationCompositionElement body) {
 
-        return ResponseEntity.ok().body(getSimulationProvider().updateControlLoopElement(body));
+        return ResponseEntity
+            .ok()
+            .headers(super.getCommonHeaders(requestId))
+            .body(getSimulationProvider().updateAutomationCompositionElement(body));
     }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/rest/SimulationParticipantController.java
similarity index 88%
rename from participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java
rename to participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/rest/SimulationParticipantController.java
index 25ae4ac..02e56aa 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/rest/SimulationParticipantController.java
+++ b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/simulator/simulation/rest/SimulationParticipantController.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.simulation.rest;
+package org.onap.policy.clamp.acm.participant.simulator.simulation.rest;
 
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -30,10 +30,10 @@
 import io.swagger.annotations.ResponseHeader;
 import java.util.List;
 import java.util.UUID;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.messages.rest.TypedSimpleResponse;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.rest.AbstractRestController;
-import org.onap.policy.clamp.controlloop.participant.simulator.simulation.SimulationProvider;
+import org.onap.policy.clamp.acm.participant.simulator.main.rest.AbstractRestController;
+import org.onap.policy.clamp.acm.participant.simulator.simulation.SimulationProvider;
+import org.onap.policy.clamp.models.acm.concepts.Participant;
+import org.onap.policy.clamp.models.acm.messages.rest.TypedSimpleResponse;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -72,7 +72,7 @@
                     + "returning all participant details",
             response = List.class,
             tags = {
-                "Clamp Control Loop Participant Simulator API"
+                "Clamp Automation Composition Participant Simulator API"
             },
             authorizations = @Authorization(value = AUTHORIZATION_TYPE),
             responseHeaders = {
@@ -109,7 +109,10 @@
         @ApiParam(value = "Participant name", required = true) @PathVariable("name") String name,
         @ApiParam(value = "Participant version", required = true) @PathVariable("version") String version) {
 
-        return ResponseEntity.ok().body(getSimulationProvider().getParticipants(name, version));
+        return ResponseEntity
+            .ok()
+            .headers(super.getCommonHeaders(requestId))
+            .body(getSimulationProvider().getParticipants(name, version));
     }
 
     /**
@@ -123,10 +126,10 @@
     @PutMapping("/participants")
     @ApiOperation(
             value = "Updates simulated participants",
-            notes = "Updates simulated participants, returning the updated control loop definition IDs",
+            notes = "Updates simulated participants, returning the updated automation composition definition IDs",
             response = TypedSimpleResponse.class,
             tags = {
-                "Clamp Control Loop Participant Simulator API"
+                "Clamp Automation Composition Participant Simulator API"
                 },
             authorizations = @Authorization(value = AUTHORIZATION_TYPE),
             responseHeaders = {
@@ -170,6 +173,9 @@
         @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,
         @ApiParam(value = "Body of a participant", required = true) @RequestBody Participant body) {
 
-        return ResponseEntity.ok().body(getSimulationProvider().updateParticipant(body));
+        return ResponseEntity
+            .ok()
+            .headers(super.getCommonHeaders(requestId))
+            .body(getSimulationProvider().updateParticipant(body));
     }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/handler/ControlLoopElementHandler.java
deleted file mode 100644
index fd46faf..0000000
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/main/handler/ControlLoopElementHandler.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.simulator.main.handler;
-
-import java.time.Instant;
-import java.util.UUID;
-import lombok.Setter;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-/**
- * This class handles implementation of controlLoopElement updates.
- */
-@Component
-public class ControlLoopElementHandler implements ControlLoopElementListener {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(ControlLoopElementHandler.class);
-
-    @Setter
-    private ParticipantIntermediaryApi intermediaryApi;
-
-    /**
-     * Callback method to handle a control loop element state change.
-     *
-     * @param controlLoopElementId the ID of the control loop element
-     * @param currentState the current state of the control loop element
-     * @param newState the state to which the control loop element is changing to
-     * @throws PfModelException in case of an exception
-     */
-    @Override
-    public void controlLoopElementStateChange(ToscaConceptIdentifier controlLoopId,
-                UUID controlLoopElementId, ControlLoopState currentState,
-            ControlLoopOrderedState newState) throws PfModelException {
-        switch (newState) {
-            case UNINITIALISED:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                        controlLoopElementId, newState, ControlLoopState.UNINITIALISED,
-                        ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            case PASSIVE:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                    controlLoopElementId, newState, ControlLoopState.PASSIVE,
-                    ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            case RUNNING:
-                intermediaryApi.updateControlLoopElementState(controlLoopId,
-                    controlLoopElementId, newState, ControlLoopState.RUNNING,
-                    ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE);
-                break;
-            default:
-                LOGGER.debug("Unknown orderedstate {}", newState);
-                break;
-        }
-    }
-
-    /**
-     * Callback method to handle an update on a control loop element.
-     *
-     * @param element the information on the control loop element
-     * @param clElementDefinition toscaNodeTemplate
-     * @throws PfModelException in case of an exception
-     */
-    @Override
-    public void controlLoopElementUpdate(ToscaConceptIdentifier controlLoopId, ControlLoopElement element,
-                ToscaNodeTemplate clElementDefinition)
-            throws PfModelException {
-        intermediaryApi.updateControlLoopElementState(controlLoopId, element.getId(), element.getOrderedState(),
-                ControlLoopState.PASSIVE, ParticipantMessageType.CONTROL_LOOP_UPDATE);
-    }
-
-    @Override
-    public void handleStatistics(UUID controlLoopElementId) throws PfModelException {
-        var clElement = intermediaryApi.getControlLoopElement(controlLoopElementId);
-        if (clElement != null) {
-            var clElementStatistics = new ClElementStatistics();
-            clElementStatistics.setControlLoopState(clElement.getState());
-            clElementStatistics.setTimeStamp(Instant.now());
-            intermediaryApi.updateControlLoopElementStatistics(controlLoopElementId, clElementStatistics);
-        }
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java b/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java
deleted file mode 100644
index 688f7df..0000000
--- a/participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/controlloop/participant/simulator/simulation/SimulationProvider.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.simulator.simulation;
-
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.rest.TypedSimpleResponse;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.springframework.stereotype.Service;
-
-/**
- * This provider class simulation of participants and control loop elements.
- */
-@Service
-public class SimulationProvider {
-
-    private final ParticipantIntermediaryApi intermediaryApi;
-
-    /**
-     * Create a participant simulation provider.
-     * @param intermediaryApi the intermediary to use for talking to the CLAMP runtime
-     */
-    public SimulationProvider(ParticipantIntermediaryApi intermediaryApi) {
-        this.intermediaryApi = intermediaryApi;
-    }
-
-    /**
-     * Get the control loops.
-     *
-     * @param name the controlLoop, null to get all
-     * @param version the controlLoop, null to get all
-     * @return the control loops
-     * @throws ControlLoopException on errors getting the control loops
-     */
-    public ControlLoops getControlLoops(String name, String version) throws ControlLoopException {
-        return intermediaryApi.getControlLoops(name, version);
-    }
-
-    /**
-     * Get the simulated control loop elements.
-     *
-     * @param name the controlLoopElement, null to get all
-     * @param version the controlLoopElement, null to get all
-     * @return the control loop elements
-     */
-    public Map<UUID, ControlLoopElement> getControlLoopElements(String name, String version) {
-        return intermediaryApi.getControlLoopElements(name, version);
-    }
-
-    /**
-     * Update the given control loop element in the simulator.
-     *
-     * @param element the control loop element to update
-     * @return response simple response returned
-     */
-    public TypedSimpleResponse<ControlLoopElement> updateControlLoopElement(ControlLoopElement element) {
-        TypedSimpleResponse<ControlLoopElement> response = new TypedSimpleResponse<>();
-        response.setResponse(intermediaryApi.updateControlLoopElementState(null, element.getId(),
-            element.getOrderedState(), element.getState(), ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE));
-        return response;
-    }
-
-    /**
-     * Get the current simulated participants.
-     *
-     * @param name the participant, null to get all
-     * @param version the participant, null to get all
-     * @return the list of participants
-     */
-    public List<Participant> getParticipants(String name, String version) {
-        return intermediaryApi.getParticipants(name, version);
-    }
-
-    /**
-     * Update a simulated participant.
-     *
-     * @param participant the participant to update
-     * @return TypedSimpleResponse simple response
-     */
-    public TypedSimpleResponse<Participant> updateParticipant(Participant participant) {
-        TypedSimpleResponse<Participant> response = new TypedSimpleResponse<>();
-        response.setResponse(
-                intermediaryApi.updateParticipantState(participant.getDefinition(), participant.getParticipantState()));
-        return response;
-    }
-}
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml b/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml
index d750d46..e20f0eb 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml
+++ b/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml
@@ -21,17 +21,17 @@
     participantType:
       name: org.onap.PM_CDS_Blueprint
       version: 1.0.0
-    clampControlLoopTopics:
+    clampAutomationCompositionTopics:
       topicSources:
         -
-          topic: POLICY-CLRUNTIME-PARTICIPANT
+          topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:localhost}
           topicCommInfrastructure: dmaap
           fetchTimeout: 15000
       topicSinks:
         -
-          topic: POLICY-CLRUNTIME-PARTICIPANT
+          topic: POLICY-ACRUNTIME-PARTICIPANT
           servers:
             - ${topicServer:localhost}
           topicCommInfrastructure: dmaap
diff --git a/participant/participant-impl/participant-impl-simulator/src/main/resources/version.txt b/participant/participant-impl/participant-impl-simulator/src/main/resources/version.txt
index dbd6758..5fcdcab 100644
--- a/participant/participant-impl/participant-impl-simulator/src/main/resources/version.txt
+++ b/participant/participant-impl/participant-impl-simulator/src/main/resources/version.txt
@@ -1,4 +1,4 @@
-ONAP Tosca defined control loop Participant
+ONAP Tosca defined automation composition Participant
 Version: ${project.version}
 Built (UTC): ${maven.build.timestamp}
 ONAP https://wiki.onap.org
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/endtoend/ParticipantSimulatorTest.java
similarity index 74%
rename from participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java
rename to participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/endtoend/ParticipantSimulatorTest.java
index 14f5126..de6855d 100644
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/endtoend/ParticipantSimulatorTest.java
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/endtoend/ParticipantSimulatorTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.endtoend;
+package org.onap.policy.clamp.acm.participant.simulator.endtoend;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -41,19 +41,19 @@
 import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.rest.TypedSimpleResponse;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ControlLoopUpdateListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.parameters.CommonTestData;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.rest.AbstractRestController;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.rest.TestListenerUtils;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.AutomationCompositionUpdateListener;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.simulator.main.parameters.CommonTestData;
+import org.onap.policy.clamp.acm.participant.simulator.main.rest.AbstractRestController;
+import org.onap.policy.clamp.acm.participant.simulator.main.rest.TestListenerUtils;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.Participant;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.clamp.models.acm.messages.rest.TypedSimpleResponse;
 import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
 import org.onap.policy.common.gson.GsonMessageBodyHandler;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
@@ -97,10 +97,12 @@
         synchronized (lockit) {
             if (!check) {
                 check = true;
-                ControlLoopUpdateListener clUpdateListener = new ControlLoopUpdateListener(participantHandler);
+                AutomationCompositionUpdateListener acUpdateListener =
+                    new AutomationCompositionUpdateListener(participantHandler);
 
-                ControlLoopUpdate controlLoopUpdateMsg = TestListenerUtils.createControlLoopUpdateMsg();
-                clUpdateListener.onTopicEvent(INFRA, TOPIC, null, controlLoopUpdateMsg);
+                AutomationCompositionUpdate automationCompositionUpdateMsg =
+                    TestListenerUtils.createAutomationCompositionUpdateMsg();
+                acUpdateListener.onTopicEvent(INFRA, TOPIC, null, automationCompositionUpdateMsg);
 
             }
         }
@@ -193,8 +195,8 @@
 
         // GET REST call for querying the participants
         Response response = performGet(
-                PARTICIPANTS_ENDPOINT + "/" + participant.getKey().getName() + "/" + participant.getKey().getVersion(),
-                uuid);
+            PARTICIPANTS_ENDPOINT + "/" + participant.getKey().getName() + "/" + participant.getKey().getVersion(),
+            uuid);
         checkResponseEntity(response, 200, uuid);
 
         Participant[] returnValue = response.readEntity(Participant[].class);
@@ -219,18 +221,18 @@
     }
 
     @Test
-    void testQueryControlLoopElements() throws Exception {
+    void testQueryAutomationCompositionElements() throws Exception {
         setUp();
         UUID uuid = UUID.randomUUID();
         ToscaConceptIdentifier participantId = CommonTestData.getParticipantId();
 
-        // GET REST call for querying the controlLoop elements
+        // GET REST call for querying the automationComposition elements
         Response response =
-                performGet(ELEMENTS_ENDPOINT + "/" + participantId.getName() + "/" + participantId.getVersion(), uuid);
+            performGet(ELEMENTS_ENDPOINT + "/" + participantId.getName() + "/" + participantId.getVersion(), uuid);
         checkResponseEntity(response, 200, uuid);
 
         Map<?, ?> returnValue = response.readEntity(Map.class);
-        // Verify the result of GET controlloop elements with what is stored
+        // Verify the result of GET automation composition elements with what is stored
         assertThat(returnValue).isEmpty();
     }
 
@@ -242,7 +244,7 @@
     void testUpdateParticipant() throws Exception {
         setUp();
         List<Participant> participants = participantIntermediaryApi.getParticipants(
-                CommonTestData.getParticipantId().getName(), CommonTestData.getParticipantId().getVersion());
+            CommonTestData.getParticipantId().getName(), CommonTestData.getParticipantId().getVersion());
         assertEquals(ParticipantState.UNKNOWN, participants.get(0).getParticipantState());
         // Change the state of the participant to PASSIVE from UNKNOWN
         participants.get(0).setParticipantState(ParticipantState.PASSIVE);
@@ -253,7 +255,7 @@
         checkResponseEntity(response, 200, uuid);
 
         TypedSimpleResponse<Participant> resp =
-                response.readEntity(new GenericType<TypedSimpleResponse<Participant>>() {});
+            response.readEntity(new GenericType<TypedSimpleResponse<Participant>>() {});
         assertNotNull(resp.getResponse());
         // Verify the response and state returned by PUT REST call for updating participants
         assertEquals(participants.get(0).getDefinition(), resp.getResponse().getDefinition());
@@ -261,25 +263,26 @@
     }
 
     @Test
-    void testUpdateControlLoopElement() throws Exception {
+    void testUpdateAutomationCompositionElement() throws Exception {
         setUp();
-        ControlLoop controlLoop = TestListenerUtils.createControlLoop();
-        Map<UUID, ControlLoopElement> controlLoopElements = participantIntermediaryApi.getControlLoopElements(
-                controlLoop.getDefinition().getName(), controlLoop.getDefinition().getVersion());
+        AutomationComposition automationComposition = TestListenerUtils.createAutomationComposition();
+        Map<UUID, AutomationCompositionElement> automationCompositionElements =
+            participantIntermediaryApi.getAutomationCompositionElements(automationComposition.getDefinition().getName(),
+                automationComposition.getDefinition().getVersion());
 
-        UUID uuid = controlLoopElements.keySet().iterator().next();
-        ControlLoopElement controlLoopElement = controlLoopElements.get(uuid);
+        UUID uuid = automationCompositionElements.keySet().iterator().next();
+        AutomationCompositionElement automationCompositionElement = automationCompositionElements.get(uuid);
 
-        controlLoopElement.setOrderedState(ControlLoopOrderedState.PASSIVE);
-        // PUT REST call for updating ControlLoopElement
-        Response response = performPut(ELEMENTS_ENDPOINT, Entity.json(controlLoopElement), uuid);
+        automationCompositionElement.setOrderedState(AutomationCompositionOrderedState.PASSIVE);
+        // PUT REST call for updating AutomationCompositionElement
+        Response response = performPut(ELEMENTS_ENDPOINT, Entity.json(automationCompositionElement), uuid);
         checkResponseEntity(response, 200, uuid);
 
-        TypedSimpleResponse<ControlLoopElement> resp =
-                response.readEntity(new GenericType<TypedSimpleResponse<ControlLoopElement>>() {});
+        TypedSimpleResponse<AutomationCompositionElement> resp =
+            response.readEntity(new GenericType<TypedSimpleResponse<AutomationCompositionElement>>() {});
         assertNotNull(resp.getResponse());
         // Verify the response and state returned by PUT REST call for updating participants
-        assertEquals(controlLoopElement.getDefinition(), resp.getResponse().getDefinition());
-        assertEquals(ControlLoopOrderedState.PASSIVE, resp.getResponse().getOrderedState());
+        assertEquals(automationCompositionElement.getDefinition(), resp.getResponse().getDefinition());
+        assertEquals(AutomationCompositionOrderedState.PASSIVE, resp.getResponse().getOrderedState());
     }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/handler/AutomationCompositionElementHandlerTest.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/handler/AutomationCompositionElementHandlerTest.java
new file mode 100644
index 0000000..360485e
--- /dev/null
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/handler/AutomationCompositionElementHandlerTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.simulator.main.handler;
+
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.mockito.Mockito.when;
+
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+
+class AutomationCompositionElementHandlerTest {
+
+    private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
+    private static final String ID_VERSION = "1.0.1";
+    private static final UUID automationCompositionElementId = UUID.randomUUID();
+    private static final ToscaConceptIdentifier automationCompositionId =
+        new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+
+    @Test
+    void testSimulatorHandlerExceptions() throws PfModelException {
+        AutomationCompositionElementHandler handler = getTestingHandler();
+
+        assertDoesNotThrow(() -> handler.automationCompositionElementStateChange(automationCompositionId,
+            automationCompositionElementId, AutomationCompositionState.UNINITIALISED,
+            AutomationCompositionOrderedState.PASSIVE));
+
+        assertDoesNotThrow(() -> handler.automationCompositionElementStateChange(automationCompositionId,
+            automationCompositionElementId, AutomationCompositionState.RUNNING,
+            AutomationCompositionOrderedState.UNINITIALISED));
+
+        assertDoesNotThrow(() -> handler.automationCompositionElementStateChange(automationCompositionId,
+            automationCompositionElementId, AutomationCompositionState.PASSIVE,
+            AutomationCompositionOrderedState.RUNNING));
+        var element = getTestingAcElement();
+        var acElementDefinition = Mockito.mock(ToscaNodeTemplate.class);
+
+        assertDoesNotThrow(
+            () -> handler.automationCompositionElementUpdate(automationCompositionId, element, acElementDefinition));
+
+        assertDoesNotThrow(() -> handler.handleStatistics(automationCompositionElementId));
+    }
+
+    AutomationCompositionElementHandler getTestingHandler() {
+        var handler = new AutomationCompositionElementHandler();
+        var intermediaryApi = Mockito.mock(ParticipantIntermediaryApi.class);
+        var element = getTestingAcElement();
+        when(intermediaryApi.getAutomationCompositionElement(automationCompositionElementId)).thenReturn(element);
+        handler.setIntermediaryApi(intermediaryApi);
+        return handler;
+    }
+
+    AutomationCompositionElement getTestingAcElement() {
+        var element = new AutomationCompositionElement();
+        element.setDefinition(automationCompositionId);
+        element.setDescription("Description");
+        element.setId(automationCompositionElementId);
+        element.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED);
+        element.setParticipantId(automationCompositionId);
+        element.setState(AutomationCompositionState.UNINITIALISED);
+        var template = Mockito.mock(ToscaServiceTemplate.class);
+        element.setToscaServiceTemplateFragment(template);
+        return element;
+    }
+}
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/CommonTestData.java
similarity index 93%
rename from participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java
rename to participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/CommonTestData.java
index 9c41c8b..6af454a 100644
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/CommonTestData.java
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/CommonTestData.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.parameters;
+package org.onap.policy.clamp.acm.participant.simulator.main.parameters;
 
 import java.util.Arrays;
 import java.util.List;
@@ -34,7 +34,7 @@
  * Class to hold/create all parameters for test cases.
  */
 public class CommonTestData {
-    public static final String PARTICIPANT_GROUP_NAME = "ControlLoopParticipantGroup";
+    public static final String PARTICIPANT_GROUP_NAME = "AutomationCompositionParticipantGroup";
     public static final String DESCRIPTION = "Participant description";
     public static final long TIME_INTERVAL = 2000;
     public static final List<TopicParameters> TOPIC_PARAMS = Arrays.asList(getTopicParams());
@@ -83,7 +83,7 @@
             map.put("description", DESCRIPTION);
             map.put("participantId", getParticipantId());
             map.put("participantType", getParticipantId());
-            map.put("clampControlLoopTopics", getTopicParametersMap(false));
+            map.put("clampAutomationCompositionTopics", getTopicParametersMap(false));
         }
 
         return map;
@@ -111,7 +111,7 @@
      */
     public static TopicParameters getTopicParams() {
         final TopicParameters topicParams = new TopicParameters();
-        topicParams.setTopic("POLICY-CLRUNTIME-PARTICIPANT");
+        topicParams.setTopic("POLICY-ACRUNTIME-PARTICIPANT");
         topicParams.setTopicCommInfrastructure("dmaap");
         topicParams.setServers(Arrays.asList("localhost"));
         return topicParams;
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/TestParticipantSimulatorParameters.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/TestParticipantSimulatorParameters.java
similarity index 93%
rename from participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/TestParticipantSimulatorParameters.java
rename to participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/TestParticipantSimulatorParameters.java
index 3c1d1c2..c763d09 100644
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/parameters/TestParticipantSimulatorParameters.java
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/parameters/TestParticipantSimulatorParameters.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.simulator.main.parameters;
+package org.onap.policy.clamp.acm.participant.simulator.main.parameters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -49,14 +49,14 @@
     @Test
     void testParticipantPolicyParameters_NullTopicSinks() {
         final ParticipantSimulatorParameters participantParameters = commonTestData.getParticipantSimulatorParameters();
-        participantParameters.getIntermediaryParameters().getClampControlLoopTopics().setTopicSinks(null);
+        participantParameters.getIntermediaryParameters().getClampAutomationCompositionTopics().setTopicSinks(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
     @Test
     void testParticipantPolicyParameters_NullTopicSources() {
         final ParticipantSimulatorParameters participantParameters = commonTestData.getParticipantSimulatorParameters();
-        participantParameters.getIntermediaryParameters().getClampControlLoopTopics().setTopicSources(null);
+        participantParameters.getIntermediaryParameters().getClampAutomationCompositionTopics().setTopicSources(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 }
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/TestListenerUtils.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/TestListenerUtils.java
new file mode 100644
index 0000000..f434002
--- /dev/null
+++ b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/simulator/main/rest/TestListenerUtils.java
@@ -0,0 +1,260 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.simulator.main.rest;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.onap.policy.clamp.acm.participant.simulator.main.parameters.CommonTestData;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUpdates;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUtils;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionStateChange;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
+import org.onap.policy.clamp.models.acm.utils.AcmUtils;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.coder.YamlJsonTranslator;
+import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class TestListenerUtils {
+
+    private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
+    private static final Coder CODER = new StandardCoder();
+    static CommonTestData commonTestData = new CommonTestData();
+    private static final Logger LOGGER = LoggerFactory.getLogger(TestListenerUtils.class);
+
+    /**
+     * Method to create a automationComposition from a yaml file.
+     *
+     * @return AutomationComposition automation composition
+     */
+    public static AutomationComposition createAutomationComposition() {
+        AutomationComposition automationComposition = new AutomationComposition();
+        Map<UUID, AutomationCompositionElement> elements = new LinkedHashMap<>();
+        ToscaServiceTemplate toscaServiceTemplate = testAutomationCompositionRead();
+        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+            toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
+            AutomationCompositionElement acElement = new AutomationCompositionElement();
+            acElement.setId(UUID.randomUUID());
+
+            ToscaConceptIdentifier acElementParticipantId = new ToscaConceptIdentifier();
+            acElementParticipantId.setName(toscaInputEntry.getKey());
+            acElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
+            acElement.setParticipantId(acElementParticipantId);
+            acElement.setParticipantType(acElementParticipantId);
+
+            acElement.setDefinition(acElementParticipantId);
+            acElement.setState(AutomationCompositionState.UNINITIALISED);
+            acElement.setDescription(toscaInputEntry.getValue().getDescription());
+            acElement.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED);
+            elements.put(acElement.getId(), acElement);
+        }
+        automationComposition.setElements(elements);
+        automationComposition.setName("PMSHInstance0");
+        automationComposition.setVersion("1.0.0");
+
+        ToscaConceptIdentifier definition = new ToscaConceptIdentifier();
+        definition.setName("PMSHInstance0");
+        definition.setVersion("1.0.0");
+        automationComposition.setDefinition(definition);
+
+        return automationComposition;
+    }
+
+    /**
+     * Method to create AutomationCompositionStateChange message from the arguments passed.
+     *
+     * @param automationCompositionOrderedState automationCompositionOrderedState
+     *
+     * @return AutomationCompositionStateChange message
+     */
+    public static AutomationCompositionStateChange createAutomationCompositionStateChangeMsg(
+        final AutomationCompositionOrderedState automationCompositionOrderedState) {
+        final AutomationCompositionStateChange acStateChangeMsg = new AutomationCompositionStateChange();
+
+        ToscaConceptIdentifier automationCompositionId = new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
+        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_CDS_Blueprint", "1.0.0");
+
+        acStateChangeMsg.setAutomationCompositionId(automationCompositionId);
+        acStateChangeMsg.setParticipantId(participantId);
+        acStateChangeMsg.setTimestamp(Instant.now());
+        acStateChangeMsg.setOrderedState(automationCompositionOrderedState);
+
+        return acStateChangeMsg;
+    }
+
+    /**
+     * Method to create AutomationCompositionUpdateMsg.
+     *
+     * @return AutomationCompositionUpdate message
+     */
+    public static AutomationCompositionUpdate createAutomationCompositionUpdateMsg() {
+        final AutomationCompositionUpdate acUpdateMsg = new AutomationCompositionUpdate();
+        ToscaConceptIdentifier automationCompositionId = new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
+        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "0.0.0");
+
+        acUpdateMsg.setAutomationCompositionId(automationCompositionId);
+        acUpdateMsg.setParticipantId(participantId);
+        acUpdateMsg.setMessageId(UUID.randomUUID());
+        acUpdateMsg.setTimestamp(Instant.now());
+
+        Map<UUID, AutomationCompositionElement> elements = new LinkedHashMap<>();
+        ToscaServiceTemplate toscaServiceTemplate = testAutomationCompositionRead();
+        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+            toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
+            if (ParticipantUtils.checkIfNodeTemplateIsAutomationCompositionElement(toscaInputEntry.getValue(),
+                toscaServiceTemplate)) {
+                AutomationCompositionElement acElement = new AutomationCompositionElement();
+                acElement.setId(UUID.randomUUID());
+                var acParticipantType =
+                    ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties());
+
+                acElement.setParticipantId(acParticipantType);
+                acElement.setParticipantType(acParticipantType);
+
+                acElement.setDefinition(
+                    new ToscaConceptIdentifier(toscaInputEntry.getKey(), toscaInputEntry.getValue().getVersion()));
+                acElement.setState(AutomationCompositionState.UNINITIALISED);
+                acElement.setDescription(toscaInputEntry.getValue().getDescription());
+                acElement.setOrderedState(AutomationCompositionOrderedState.PASSIVE);
+                elements.put(acElement.getId(), acElement);
+            }
+        }
+
+        List<ParticipantUpdates> participantUpdates = new ArrayList<>();
+        for (AutomationCompositionElement element : elements.values()) {
+            AcmUtils.prepareParticipantUpdate(element, participantUpdates);
+        }
+        acUpdateMsg.setParticipantUpdatesList(participantUpdates);
+        return acUpdateMsg;
+    }
+
+    /**
+     * Method to create participantUpdateMsg.
+     *
+     * @return ParticipantUpdate message
+     */
+    public static ParticipantUpdate createParticipantUpdateMsg() {
+        final ParticipantUpdate participantUpdateMsg = new ParticipantUpdate();
+        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "1.0.0");
+        ToscaConceptIdentifier participantType =
+            new ToscaConceptIdentifier("org.onap.policy.acm.PolicyAutomationCompositionParticipant", "2.3.1");
+
+        participantUpdateMsg.setParticipantId(participantId);
+        participantUpdateMsg.setTimestamp(Instant.now());
+        participantUpdateMsg.setParticipantType(participantType);
+        participantUpdateMsg.setTimestamp(Instant.ofEpochMilli(3000));
+        participantUpdateMsg.setMessageId(UUID.randomUUID());
+
+        ToscaServiceTemplate toscaServiceTemplate = testAutomationCompositionRead();
+        // Add policies to the toscaServiceTemplate
+        List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>();
+        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : toscaServiceTemplate.getToscaTopologyTemplate()
+            .getNodeTemplates().entrySet()) {
+            if (ParticipantUtils.checkIfNodeTemplateIsAutomationCompositionElement(toscaInputEntry.getValue(),
+                toscaServiceTemplate)) {
+                var acParticipantType =
+                    ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties());
+                AcmUtils.prepareParticipantDefinitionUpdate(acParticipantType, toscaInputEntry.getKey(),
+                    toscaInputEntry.getValue(), participantDefinitionUpdates, null);
+            }
+        }
+
+        participantUpdateMsg.setParticipantDefinitionUpdates(participantDefinitionUpdates);
+        return participantUpdateMsg;
+    }
+
+    /**
+     * Method to create AutomationCompositionUpdate using the arguments passed.
+     *
+     * @param jsonFilePath the path of the automation composition content
+     *
+     * @return AutomationCompositionUpdate message
+     * @throws CoderException exception while reading the file to object
+     */
+    public static AutomationCompositionUpdate createParticipantAcUpdateMsgFromJson(String jsonFilePath)
+        throws CoderException {
+        AutomationCompositionUpdate automationCompositionUpdateMsg =
+            CODER.decode(new File(jsonFilePath), AutomationCompositionUpdate.class);
+        return automationCompositionUpdateMsg;
+    }
+
+    private static ToscaServiceTemplate testAutomationCompositionRead() {
+        Set<String> automationCompositionDirectoryContents =
+            ResourceUtils.getDirectoryContents("src/test/resources/rest/servicetemplates");
+
+        boolean atLeastOneAutomationCompositionTested = false;
+        ToscaServiceTemplate toscaServiceTemplate = null;
+
+        for (String automationCompositionFilePath : automationCompositionDirectoryContents) {
+            if (!automationCompositionFilePath.endsWith(".yaml")) {
+                continue;
+            }
+            atLeastOneAutomationCompositionTested = true;
+            toscaServiceTemplate = testAutomationCompositionYamlSerialization(automationCompositionFilePath);
+        }
+
+        assertTrue(atLeastOneAutomationCompositionTested);
+        return toscaServiceTemplate;
+    }
+
+    private static ToscaServiceTemplate testAutomationCompositionYamlSerialization(
+        String automationCompositionFilePath) {
+        try {
+            String automationCompositionString = ResourceUtils.getResourceAsString(automationCompositionFilePath);
+            if (automationCompositionString == null) {
+                throw new FileNotFoundException(automationCompositionFilePath);
+            }
+
+            ToscaServiceTemplate serviceTemplate =
+                yamlTranslator.fromYaml(automationCompositionString, ToscaServiceTemplate.class);
+            return serviceTemplate;
+        } catch (FileNotFoundException e) {
+            LOGGER.error("cannot find YAML file", automationCompositionFilePath);
+            throw new IllegalArgumentException(e);
+        }
+    }
+}
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/handler/ControlLoopElementHandlerTest.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/handler/ControlLoopElementHandlerTest.java
deleted file mode 100644
index b38adbc..0000000
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/handler/ControlLoopElementHandlerTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.simulator.main.handler;
-
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.mockito.Mockito.when;
-
-import java.util.UUID;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-
-class ControlLoopElementHandlerTest {
-
-    private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
-    private static final String ID_VERSION = "1.0.1";
-    private static final UUID controlLoopElementId = UUID.randomUUID();
-    private static final ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
-
-    @Test
-    void testSimulatorHandlerExceptions() throws PfModelException {
-        ControlLoopElementHandler handler = getTestingHandler();
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId,
-                        ControlLoopState.UNINITIALISED,
-                        ControlLoopOrderedState.PASSIVE));
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId,
-                        ControlLoopState.RUNNING,
-                        ControlLoopOrderedState.UNINITIALISED));
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementStateChange(controlLoopId,
-                        controlLoopElementId,
-                        ControlLoopState.PASSIVE,
-                        ControlLoopOrderedState.RUNNING));
-        var element = getTestingClElement();
-        var clElementDefinition = Mockito.mock(ToscaNodeTemplate.class);
-
-        assertDoesNotThrow(() -> handler
-                .controlLoopElementUpdate(controlLoopId, element, clElementDefinition));
-
-        assertDoesNotThrow(() -> handler
-                .handleStatistics(controlLoopElementId));
-    }
-
-    ControlLoopElementHandler getTestingHandler() {
-        var handler = new ControlLoopElementHandler();
-        var intermediaryApi = Mockito.mock(ParticipantIntermediaryApi.class);
-        var element = getTestingClElement();
-        when(intermediaryApi.getControlLoopElement(controlLoopElementId)).thenReturn(element);
-        handler.setIntermediaryApi(intermediaryApi);
-        return handler;
-    }
-
-    ControlLoopElement getTestingClElement() {
-        var element = new ControlLoopElement();
-        element.setDefinition(controlLoopId);
-        element.setDescription("Description");
-        element.setId(controlLoopElementId);
-        element.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
-        element.setParticipantId(controlLoopId);
-        element.setState(ControlLoopState.UNINITIALISED);
-        var template = Mockito.mock(ToscaServiceTemplate.class);
-        element.setToscaServiceTemplateFragment(template);
-        return element;
-    }
-
-}
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/TestListenerUtils.java b/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/TestListenerUtils.java
deleted file mode 100644
index 9f6a31e..0000000
--- a/participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/controlloop/participant/simulator/main/rest/TestListenerUtils.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.simulator.main.rest;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.time.Instant;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.onap.policy.clamp.controlloop.common.utils.CommonUtils;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUtils;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
-import org.onap.policy.clamp.controlloop.participant.simulator.main.parameters.CommonTestData;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.common.utils.coder.YamlJsonTranslator;
-import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class TestListenerUtils {
-
-    private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
-    private static final Coder CODER = new StandardCoder();
-    static CommonTestData commonTestData = new CommonTestData();
-    private static final Logger LOGGER = LoggerFactory.getLogger(TestListenerUtils.class);
-
-    /**
-     * Method to create a controlLoop from a yaml file.
-     *
-     * @return ControlLoop controlloop
-     */
-    public static ControlLoop createControlLoop() {
-        ControlLoop controlLoop = new ControlLoop();
-        Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
-        ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
-        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
-                toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
-            ControlLoopElement clElement = new ControlLoopElement();
-            clElement.setId(UUID.randomUUID());
-
-            ToscaConceptIdentifier clElementParticipantId = new ToscaConceptIdentifier();
-            clElementParticipantId.setName(toscaInputEntry.getKey());
-            clElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
-            clElement.setParticipantId(clElementParticipantId);
-            clElement.setParticipantType(clElementParticipantId);
-
-            clElement.setDefinition(clElementParticipantId);
-            clElement.setState(ControlLoopState.UNINITIALISED);
-            clElement.setDescription(toscaInputEntry.getValue().getDescription());
-            clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
-            elements.put(clElement.getId(), clElement);
-        }
-        controlLoop.setElements(elements);
-        controlLoop.setName("PMSHInstance0");
-        controlLoop.setVersion("1.0.0");
-
-        ToscaConceptIdentifier definition = new ToscaConceptIdentifier();
-        definition.setName("PMSHInstance0");
-        definition.setVersion("1.0.0");
-        controlLoop.setDefinition(definition);
-
-        return controlLoop;
-    }
-
-    /**
-     * Method to create ControlLoopStateChange message from the arguments passed.
-     *
-     * @param controlLoopOrderedState controlLoopOrderedState
-     *
-     * @return ControlLoopStateChange message
-     */
-    public static ControlLoopStateChange createControlLoopStateChangeMsg(
-            final ControlLoopOrderedState controlLoopOrderedState) {
-        final ControlLoopStateChange clStateChangeMsg = new ControlLoopStateChange();
-
-        ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
-        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_CDS_Blueprint", "1.0.0");
-
-        clStateChangeMsg.setControlLoopId(controlLoopId);
-        clStateChangeMsg.setParticipantId(participantId);
-        clStateChangeMsg.setTimestamp(Instant.now());
-        clStateChangeMsg.setOrderedState(controlLoopOrderedState);
-
-        return clStateChangeMsg;
-    }
-
-    /**
-     * Method to create ControlLoopUpdateMsg.
-     *
-     * @return ControlLoopUpdate message
-     */
-    public static ControlLoopUpdate createControlLoopUpdateMsg() {
-        final ControlLoopUpdate clUpdateMsg = new ControlLoopUpdate();
-        ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
-        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "0.0.0");
-
-        clUpdateMsg.setControlLoopId(controlLoopId);
-        clUpdateMsg.setParticipantId(participantId);
-        clUpdateMsg.setMessageId(UUID.randomUUID());
-        clUpdateMsg.setTimestamp(Instant.now());
-
-        Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
-        ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
-        Map<String, ToscaNodeTemplate> nodeTemplatesMap =
-                toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
-        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
-            if (ParticipantUtils.checkIfNodeTemplateIsControlLoopElement(toscaInputEntry.getValue(),
-                    toscaServiceTemplate)) {
-                ControlLoopElement clElement = new ControlLoopElement();
-                clElement.setId(UUID.randomUUID());
-                var clParticipantType =
-                        ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties());
-
-                clElement.setParticipantId(clParticipantType);
-                clElement.setParticipantType(clParticipantType);
-
-                clElement.setDefinition(
-                        new ToscaConceptIdentifier(toscaInputEntry.getKey(), toscaInputEntry.getValue().getVersion()));
-                clElement.setState(ControlLoopState.UNINITIALISED);
-                clElement.setDescription(toscaInputEntry.getValue().getDescription());
-                clElement.setOrderedState(ControlLoopOrderedState.PASSIVE);
-                elements.put(clElement.getId(), clElement);
-            }
-        }
-
-        List<ParticipantUpdates> participantUpdates = new ArrayList<>();
-        for (ControlLoopElement element : elements.values()) {
-            CommonUtils.prepareParticipantUpdate(element, participantUpdates);
-        }
-        clUpdateMsg.setParticipantUpdatesList(participantUpdates);
-        return clUpdateMsg;
-    }
-
-    /**
-     * Method to create participantUpdateMsg.
-     *
-     * @return ParticipantUpdate message
-     */
-    public static ParticipantUpdate createParticipantUpdateMsg() {
-        final ParticipantUpdate participantUpdateMsg = new ParticipantUpdate();
-        ToscaConceptIdentifier participantId = new ToscaConceptIdentifier("org.onap.PM_Policy", "1.0.0");
-        ToscaConceptIdentifier participantType =
-                new ToscaConceptIdentifier("org.onap.policy.controlloop.PolicyControlLoopParticipant", "2.3.1");
-
-        participantUpdateMsg.setParticipantId(participantId);
-        participantUpdateMsg.setTimestamp(Instant.now());
-        participantUpdateMsg.setParticipantType(participantType);
-        participantUpdateMsg.setTimestamp(Instant.ofEpochMilli(3000));
-        participantUpdateMsg.setMessageId(UUID.randomUUID());
-
-        ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
-        // Add policies to the toscaServiceTemplate
-        List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>();
-        for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : toscaServiceTemplate.getToscaTopologyTemplate()
-                .getNodeTemplates().entrySet()) {
-            if (ParticipantUtils.checkIfNodeTemplateIsControlLoopElement(toscaInputEntry.getValue(),
-                    toscaServiceTemplate)) {
-                var clParticipantType =
-                        ParticipantUtils.findParticipantType(toscaInputEntry.getValue().getProperties());
-                CommonUtils.prepareParticipantDefinitionUpdate(clParticipantType, toscaInputEntry.getKey(),
-                        toscaInputEntry.getValue(), participantDefinitionUpdates, null);
-            }
-        }
-
-        participantUpdateMsg.setParticipantDefinitionUpdates(participantDefinitionUpdates);
-        return participantUpdateMsg;
-    }
-
-    /**
-     * Method to create ControlLoopUpdate using the arguments passed.
-     *
-     * @param jsonFilePath the path of the controlloop content
-     *
-     * @return ControlLoopUpdate message
-     * @throws CoderException exception while reading the file to object
-     */
-    public static ControlLoopUpdate createParticipantClUpdateMsgFromJson(String jsonFilePath) throws CoderException {
-        ControlLoopUpdate controlLoopUpdateMsg = CODER.decode(new File(jsonFilePath), ControlLoopUpdate.class);
-        return controlLoopUpdateMsg;
-    }
-
-    private static ToscaServiceTemplate testControlLoopRead() {
-        Set<String> controlLoopDirectoryContents =
-                ResourceUtils.getDirectoryContents("src/test/resources/rest/servicetemplates");
-
-        boolean atLeastOneControlLoopTested = false;
-        ToscaServiceTemplate toscaServiceTemplate = null;
-
-        for (String controlLoopFilePath : controlLoopDirectoryContents) {
-            if (!controlLoopFilePath.endsWith(".yaml")) {
-                continue;
-            }
-            atLeastOneControlLoopTested = true;
-            toscaServiceTemplate = testControlLoopYamlSerialization(controlLoopFilePath);
-        }
-
-        assertTrue(atLeastOneControlLoopTested);
-        return toscaServiceTemplate;
-    }
-
-    private static ToscaServiceTemplate testControlLoopYamlSerialization(String controlLoopFilePath) {
-        try {
-            String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
-            if (controlLoopString == null) {
-                throw new FileNotFoundException(controlLoopFilePath);
-            }
-
-            ToscaServiceTemplate serviceTemplate =
-                    yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
-            return serviceTemplate;
-        } catch (FileNotFoundException e) {
-            LOGGER.error("cannot find YAML file", controlLoopFilePath);
-            throw new IllegalArgumentException(e);
-        }
-    }
-}
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/resources/application_test.properties b/participant/participant-impl/participant-impl-simulator/src/test/resources/application_test.properties
index a4a1f99..ccc5458 100644
--- a/participant/participant-impl/participant-impl-simulator/src/test/resources/application_test.properties
+++ b/participant/participant-impl/participant-impl-simulator/src/test/resources/application_test.properties
@@ -16,10 +16,10 @@
 participant.intermediaryParameters.participantId.version=1.0.0
 participant.intermediaryParameters.participantType.name=org.onap.PM_CDS_Blueprint
 participant.intermediaryParameters.participantType.version=1.0.0
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].topicCommInfrastructure=dmaap
-participant.intermediaryParameters.clampControlLoopTopics.topicSources[0].fetchTimeout=15000
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topic=POLICY-CLRUNTIME-PARTICIPANT
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].servers[0]=localhost
-participant.intermediaryParameters.clampControlLoopTopics.topicSinks[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].topicCommInfrastructure=dmaap
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSources[0].fetchTimeout=15000
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topic=POLICY-ACRUNTIME-PARTICIPANT
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].servers[0]=localhost
+participant.intermediaryParameters.clampAutomationCompositionTopics.topicSinks[0].topicCommInfrastructure=dmaap
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/resources/rest/servicetemplates/pm_automation_composition_tosca.yaml b/participant/participant-impl/participant-impl-simulator/src/test/resources/rest/servicetemplates/pm_automation_composition_tosca.yaml
new file mode 100644
index 0000000..6e34c7c
--- /dev/null
+++ b/participant/participant-impl/participant-impl-simulator/src/test/resources/rest/servicetemplates/pm_automation_composition_tosca.yaml
@@ -0,0 +1,164 @@
+tosca_definitions_version: tosca_simple_yaml_1_3
+data_types:
+  onap.datatypes.ToscaConceptIdentifier:
+    derived_from: tosca.datatypes.Root
+    properties:
+      name:
+        type: string
+        required: true
+      version:
+        type: string
+        required: true
+node_types:
+  org.onap.policy.clamp.acm.Participant:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+  org.onap.policy.clamp.acm.AutomationCompositionElement:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+      participantType:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+      startPhase:
+        type: integer
+        required: false
+        constraints:
+        - greater-or-equal: 0
+        metadata:
+            common: true
+        description: A value indicating the start phase in which this automation composition element will be started, the
+                     first start phase is zero. Automation Composition Elements are started in their start_phase order and stopped
+                     in reverse start phase order. Automation Composition Elements with the same start phase are started and
+                     stopped simultaneously
+  org.onap.policy.clamp.acm.AutomationComposition:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        requred: false
+      elements:
+        type: list
+        required: true
+        entry_schema:
+          type: onap.datatypes.ToscaConceptIdentifier
+  org.onap.policy.clamp.acm.DCAEMicroserviceAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      dcae_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+  org.onap.policy.clamp.acm.PolicyTypeAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      policy_type_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+  org.onap.policy.clamp.acm.CDSAutomationCompositionElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement
+    properties:
+      cds_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        requred: true
+topology_template:
+  node_templates:
+    org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant:
+      version: 2.3.4
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.policy.acm.PolicyAutomationCompositionParticipant:
+      version: 2.3.1
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant:
+      version: 2.2.1
+      type: org.onap.policy.clamp.acm.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.DCAEMicroserviceAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for the DCAE microservice for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant
+          version: 2.3.4
+        dcae_blueprint_id:
+          name: org.onap.dcae.blueprints.PMSHBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.PolicyTypeAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for the monitoring policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.acm.PolicyAutomationCompositionParticipant
+          version: 2.3.1
+        policy_type_id:
+          name: onap.policies.monitoring.pm-subscription-handler
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.PolicyTypeAutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for the operational policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.acm.PolicyAutomationCompositionParticipant
+          version: 2.3.1
+        policy_type_id:
+          name: onap.policies.operational.pm-subscription-handler
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.AutomationCompositionElement
+      type_version: 1.0.0
+      description: Automation composition element for CDS for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.PM_CDS_Blueprint
+          version: 1.0.0
+        cds_blueprint_id:
+          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSHAutomationCompositionDefinition:
+      version: 1.2.3
+      type: org.onap.policy.clamp.acm.AutomationComposition
+      type_version: 1.0.0
+      description: Automation composition for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        elements:
+          - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement
+            version: 1.2.3
+          - name: org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement
+            version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-simulator/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml b/participant/participant-impl/participant-impl-simulator/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml
deleted file mode 100644
index 21d20a8..0000000
--- a/participant/participant-impl/participant-impl-simulator/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml
+++ /dev/null
@@ -1,164 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_3
-data_types:
-  onap.datatypes.ToscaConceptIdentifier:
-    derived_from: tosca.datatypes.Root
-    properties:
-      name:
-        type: string
-        required: true
-      version:
-        type: string
-        required: true
-node_types:
-  org.onap.policy.clamp.controlloop.Participant:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-  org.onap.policy.clamp.controlloop.ControlLoopElement:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-      participantType:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-      startPhase:
-        type: integer
-        required: false
-        constraints:
-        - greater-or-equal: 0
-        metadata:
-            common: true
-        description: A value indicating the start phase in which this control loop element will be started, the
-                     first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
-                     in reverse start phase order. Control Loop Elements with the same start phase are started and
-                     stopped simultaneously
-  org.onap.policy.clamp.controlloop.ControlLoop:
-    version: 1.0.1
-    derived_from: tosca.nodetypes.Root
-    properties:
-      provider:
-        type: string
-        requred: false
-      elements:
-        type: list
-        required: true
-        entry_schema:
-          type: onap.datatypes.ToscaConceptIdentifier
-  org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      dcae_blueprint_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-  org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      policy_type_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-  org.onap.policy.clamp.controlloop.CDSControlLoopElement:
-    version: 1.0.1
-    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
-    properties:
-      cds_blueprint_id:
-        type: onap.datatypes.ToscaConceptIdentifier
-        requred: true
-topology_template:
-  node_templates:
-    org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant:
-      version: 2.3.4
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.policy.controlloop.PolicyControlLoopParticipant:
-      version: 2.3.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant:
-      version: 2.2.1
-      type: org.onap.policy.clamp.controlloop.Participant
-      type_version: 1.0.1
-      description: Participant for DCAE microservices
-      properties:
-        provider: ONAP
-    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the DCAE microservice for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant
-          version: 2.3.4
-        dcae_blueprint_id:
-          name: org.onap.dcae.blueprints.PMSHBlueprint
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the monitoring policy for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.policy.controlloop.PolicyControlLoopParticipant
-          version: 2.3.1
-        policy_type_id:
-          name: onap.policies.monitoring.pm-subscription-handler
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for the operational policy for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.policy.controlloop.PolicyControlLoopParticipant
-          version: 2.3.1
-        policy_type_id:
-          name: onap.policies.operational.pm-subscription-handler
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoopElement
-      type_version: 1.0.0
-      description: Control loop element for CDS for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        participantType:
-          name: org.onap.PM_CDS_Blueprint
-          version: 1.0.0
-        cds_blueprint_id:
-          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
-          version: 1.0.0
-    org.onap.domain.pmsh.PMSHControlLoopDefinition:
-      version: 1.2.3
-      type: org.onap.policy.clamp.controlloop.ControlLoop
-      type_version: 1.0.0
-      description: Control loop for Performance Management Subscription Handling
-      properties:
-        provider: Ericsson
-        elements:
-          - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
-            version: 1.2.3
-          - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement
-            version: 1.2.3
-          - name: org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement
-            version: 1.2.3
-          - name: org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement
-            version: 1.2.3
diff --git a/participant/participant-intermediary/pom.xml b/participant/participant-intermediary/pom.xml
index c607836..936d26b 100644
--- a/participant/participant-intermediary/pom.xml
+++ b/participant/participant-intermediary/pom.xml
@@ -30,7 +30,7 @@
 
     <artifactId>policy-clamp-participant-intermediary</artifactId>
     <name>${project.artifactId}</name>
-    <description>Common intermediary library for managing DMaaP participant messaging and holding participant and control
-     loop state</description>
+    <description>Common intermediary library for managing DMaaP participant messaging and holding participant and
+                 Automation Composition state</description>
 
 </project>
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/AutomationCompositionElementListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/AutomationCompositionElementListener.java
new file mode 100644
index 0000000..9affd57
--- /dev/null
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/AutomationCompositionElementListener.java
@@ -0,0 +1,65 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.api;
+
+import java.util.UUID;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+
+/**
+ * This interface is implemented by participant implementations to receive updates on automation composition elements.
+ */
+public interface AutomationCompositionElementListener {
+    /**
+     * Handle a automation composition element state change.
+     *
+     * @param automationCompositionElementId the ID of the automation composition element
+     * @param currentState the current state of the automation composition element
+     * @param newState the state to which the automation composition element is changing to
+     * @throws PfModelException in case of a model exception
+     */
+    public void automationCompositionElementStateChange(ToscaConceptIdentifier automationCompositionId,
+        UUID automationCompositionElementId, AutomationCompositionState currentState,
+        AutomationCompositionOrderedState newState) throws PfModelException;
+
+    /**
+     * Handle an update on a automation composition element.
+     *
+     * @param element the information on the automation composition element
+     * @param automationCompositionElementDefinition toscaNodeTemplate
+     * @throws PfModelException from Policy framework
+     */
+    public void automationCompositionElementUpdate(ToscaConceptIdentifier automationCompositionId,
+        AutomationCompositionElement element, ToscaNodeTemplate automationCompositionElementDefinition)
+        throws PfModelException;
+
+    /**
+     * Handle automationCompositionElement statistics.
+     *
+     * @param automationCompositionElementId automationCompositionElement id
+     * @throws PfModelException in case of a model exception
+     */
+    public void handleStatistics(UUID automationCompositionElementId) throws PfModelException;
+}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/ParticipantIntermediaryApi.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/ParticipantIntermediaryApi.java
new file mode 100644
index 0000000..79f5259
--- /dev/null
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/ParticipantIntermediaryApi.java
@@ -0,0 +1,130 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.api;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.concepts.Participant;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantStatistics;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
+
+/**
+ * This interface is used by participant implementations to use the participant intermediary.
+ */
+public interface ParticipantIntermediaryApi {
+
+    /**
+     * Register a listener for automation composition elements that are mediated by the intermediary.
+     *
+     * @param automationCompositionElementListener The automation composition element listener to register
+     */
+    void registerAutomationCompositionElementListener(
+        AutomationCompositionElementListener automationCompositionElementListener);
+
+    /**
+     * Get participants loops from the intermediary API.
+     *
+     * @param name the participant name, null for all
+     * @param version the participant version, null for all
+     * @return the participants
+     */
+    List<Participant> getParticipants(String name, String version);
+
+    /**
+     * Get common properties of a automation composition element.
+     *
+     * @param acElementDef the automation composition element definition
+     * @return the common properties
+     */
+    Map<String, ToscaProperty> getAcElementDefinitionCommonProperties(ToscaConceptIdentifier acElementDef);
+
+    /**
+     * Update the state of a participant.
+     *
+     * @param definition the definition of the participant to update the state on
+     * @param state the state of the participant
+     * @return the participant
+     */
+    Participant updateParticipantState(ToscaConceptIdentifier definition, ParticipantState state);
+
+    /**
+     * Update the statistics of a participant.
+     *
+     * @param participantStatistics the statistics of the participant
+     */
+    void updateParticipantStatistics(ParticipantStatistics participantStatistics);
+
+    /**
+     * Get automation compositions from the intermediary API.
+     *
+     * @param name the automation composition element name, null for all
+     * @param version the automation composition element version, null for all
+     * @return the automation composition elements
+     */
+    AutomationCompositions getAutomationCompositions(String name, String version);
+
+    /**
+     * Get automation composition elements from the intermediary API.
+     *
+     * @param name the automation composition element name, null for all
+     * @param version the automation composition element version, null for all
+     * @return the automation composition elements
+     */
+    Map<UUID, AutomationCompositionElement> getAutomationCompositionElements(String name, String version);
+
+    /**
+     * Get automation composition element from the intermediary API.
+     *
+     * @param id automation composition element ID
+     * @return the automation composition element
+     */
+    AutomationCompositionElement getAutomationCompositionElement(UUID id);
+
+    /**
+     * Update the state of a automation composition element.
+     *
+     * @param id the ID of the automation composition element to update the state on
+     * @param currentState the state of the automation composition element
+     * @param newState the state of the automation composition element
+     * @return AutomationCompositionElement updated automation composition element
+     */
+    AutomationCompositionElement updateAutomationCompositionElementState(ToscaConceptIdentifier automationCompositionId,
+        UUID id, AutomationCompositionOrderedState currentState, AutomationCompositionState newState,
+        ParticipantMessageType messageType);
+
+    /**
+     * Update the automation composition element statistics.
+     *
+     * @param id the ID of the automation composition element to update the state on
+     * @param elementStatistics the updated statistics
+     */
+    void updateAutomationCompositionElementStatistics(UUID id, AcElementStatistics elementStatistics);
+}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImpl.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImpl.java
new file mode 100644
index 0000000..1a1f850
--- /dev/null
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImpl.java
@@ -0,0 +1,140 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.api.impl;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.AutomationCompositionHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.concepts.Participant;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantStatistics;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class is api implementation used by participant intermediary.
+ */
+@Component
+public class ParticipantIntermediaryApiImpl implements ParticipantIntermediaryApi {
+
+    // The handler for the participant intermediary
+    private final ParticipantHandler participantHandler;
+
+    // The handler for the automationComposition intermediary
+    private final AutomationCompositionHandler automationCompositionHandler;
+
+    /**
+     * Constructor.
+     *
+     * @param participantHandler ParticipantHandler
+     * @param automationCompositionHandler AutomationCompositionHandler
+     */
+    public ParticipantIntermediaryApiImpl(ParticipantHandler participantHandler,
+        AutomationCompositionHandler automationCompositionHandler) {
+        this.participantHandler = participantHandler;
+        this.automationCompositionHandler = automationCompositionHandler;
+    }
+
+    @Override
+    public void registerAutomationCompositionElementListener(
+        AutomationCompositionElementListener automationCompositionElementListener) {
+        automationCompositionHandler.registerAutomationCompositionElementListener(automationCompositionElementListener);
+    }
+
+    @Override
+    public List<Participant> getParticipants(String name, String version) {
+        return List.of(participantHandler.getParticipant(name, version));
+    }
+
+    @Override
+    public Map<String, ToscaProperty> getAcElementDefinitionCommonProperties(ToscaConceptIdentifier acElementDef) {
+        return participantHandler.getAcElementDefinitionCommonProperties(acElementDef);
+    }
+
+    @Override
+    public Participant updateParticipantState(ToscaConceptIdentifier definition, ParticipantState state) {
+        return participantHandler.updateParticipantState(definition, state);
+    }
+
+    @Override
+    public void updateParticipantStatistics(ParticipantStatistics participantStatistics) {
+        participantHandler.updateParticipantStatistics(participantStatistics);
+    }
+
+    @Override
+    public AutomationCompositions getAutomationCompositions(String name, String version) {
+        return automationCompositionHandler.getAutomationCompositions();
+    }
+
+    @Override
+    public Map<UUID, AutomationCompositionElement> getAutomationCompositionElements(String name, String version) {
+        List<AutomationComposition> automationCompositions =
+            automationCompositionHandler.getAutomationCompositions().getAutomationCompositionList();
+
+        for (AutomationComposition automationComposition : automationCompositions) {
+            if (name.equals(automationComposition.getDefinition().getName())) {
+                return automationComposition.getElements();
+            }
+        }
+        return new LinkedHashMap<>();
+    }
+
+    @Override
+    public AutomationCompositionElement getAutomationCompositionElement(UUID id) {
+        List<AutomationComposition> automationCompositions =
+            automationCompositionHandler.getAutomationCompositions().getAutomationCompositionList();
+
+        for (AutomationComposition automationComposition : automationCompositions) {
+            AutomationCompositionElement acElement = automationComposition.getElements().get(id);
+            if (acElement != null) {
+                return acElement;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public AutomationCompositionElement updateAutomationCompositionElementState(
+        ToscaConceptIdentifier automationCompositionId, UUID id, AutomationCompositionOrderedState currentState,
+        AutomationCompositionState newState, ParticipantMessageType messageType) {
+        return automationCompositionHandler.updateAutomationCompositionElementState(automationCompositionId, id,
+            currentState, newState);
+    }
+
+    @Override
+    public void updateAutomationCompositionElementStatistics(UUID id, AcElementStatistics elementStatistics) {
+        automationCompositionHandler.updateAutomationCompositionElementStatistics(id, elementStatistics);
+    }
+}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ControlLoopStateChangeListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/AutomationCompositionStateChangeListener.java
similarity index 60%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ControlLoopStateChangeListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/AutomationCompositionStateChangeListener.java
index d24f32f..b9ec6a6 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ControlLoopStateChangeListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/AutomationCompositionStateChangeListener.java
@@ -18,31 +18,31 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionStateChange;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
 import org.springframework.stereotype.Component;
 
 /**
  * Listener for Participant State Change messages sent by CLAMP.
  */
 @Component
-public class ControlLoopStateChangeListener extends ParticipantListener<ControlLoopStateChange> {
+public class AutomationCompositionStateChangeListener extends ParticipantListener<AutomationCompositionStateChange> {
 
     /**
      * Constructs the object.
      *
      * @param participantHandler the handler for managing the state of the participant
      */
-    public ControlLoopStateChangeListener(final ParticipantHandler participantHandler) {
-        super(ControlLoopStateChange.class, participantHandler,
-                participantHandler::handleControlLoopStateChange);
+    public AutomationCompositionStateChangeListener(final ParticipantHandler participantHandler) {
+        super(AutomationCompositionStateChange.class, participantHandler,
+                participantHandler::handleAutomationCompositionStateChange);
     }
 
     @Override
     public String getType() {
-        return ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE.name();
+        return ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE.name();
     }
 }
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/AutomationCompositionUpdateListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/AutomationCompositionUpdateListener.java
new file mode 100644
index 0000000..6c5dc12
--- /dev/null
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/AutomationCompositionUpdateListener.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
+
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.springframework.stereotype.Component;
+
+/**
+ * Listener for Automation Composition Update messages sent by ACM.
+ */
+@Component
+public class AutomationCompositionUpdateListener extends ParticipantListener<AutomationCompositionUpdate> {
+
+    /**
+     * Constructs the object.
+     *
+     * @param participantHandler the handler for managing the state of the participant
+     */
+    public AutomationCompositionUpdateListener(final ParticipantHandler participantHandler) {
+        super(AutomationCompositionUpdate.class, participantHandler,
+            participantHandler::handleAutomationCompositionUpdate);
+    }
+
+    @Override
+    public String getType() {
+        return ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE.name();
+    }
+}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java
similarity index 90%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java
index e11c883..0810a8a 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java
@@ -18,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
 import java.io.Closeable;
 import java.util.TimerTask;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantAckListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantAckListener.java
similarity index 87%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantAckListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantAckListener.java
index 95bbb29..c5427db 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantAckListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantAckListener.java
@@ -21,12 +21,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
 import java.util.function.Consumer;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantAckMessage;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.Listener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.Listener;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantAckMessage;
 import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
 import org.onap.policy.common.endpoints.listeners.ScoListener;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantDeregisterAckListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantDeregisterAckListener.java
similarity index 81%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantDeregisterAckListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantDeregisterAckListener.java
index 5440e00..51a2d2f 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantDeregisterAckListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantDeregisterAckListener.java
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
 import org.springframework.stereotype.Component;
 
 /**
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantListener.java
similarity index 86%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantListener.java
index 5326ccd..0eaf25c 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantListener.java
@@ -19,12 +19,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
 import java.util.function.Consumer;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessage;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.Listener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.Listener;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessage;
 import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
 import org.onap.policy.common.endpoints.listeners.ScoListener;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java
similarity index 71%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java
index 79d6262..67814a4 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java
@@ -19,17 +19,17 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
 import java.util.List;
 import javax.ws.rs.core.Response.Status;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.Publisher;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.Publisher;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionRuntimeException;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatus;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdateAck;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.common.endpoints.event.comm.client.TopicSinkClient;
 import org.slf4j.Logger;
@@ -69,7 +69,7 @@
      */
     public void sendParticipantStatus(final ParticipantStatus participantStatus) {
         if (!active) {
-            throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
+            throw new AutomationCompositionRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
         }
         topicSinkClient.send(participantStatus);
         LOGGER.debug("Sent Participant Status message to CLAMP - {}", participantStatus);
@@ -82,7 +82,7 @@
      */
     public void sendParticipantRegister(final ParticipantRegister participantRegister) {
         if (!active) {
-            throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
+            throw new AutomationCompositionRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
         }
         topicSinkClient.send(participantRegister);
         LOGGER.debug("Sent Participant Register message to CLAMP - {}", participantRegister);
@@ -95,7 +95,7 @@
      */
     public void sendParticipantDeregister(final ParticipantDeregister participantDeregister) {
         if (!active) {
-            throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
+            throw new AutomationCompositionRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
         }
         topicSinkClient.send(participantDeregister);
         LOGGER.debug("Sent Participant Deregister message to CLAMP - {}", participantDeregister);
@@ -108,23 +108,23 @@
      */
     public void sendParticipantUpdateAck(final ParticipantUpdateAck participantUpdateAck) {
         if (!active) {
-            throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
+            throw new AutomationCompositionRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
         }
         topicSinkClient.send(participantUpdateAck);
         LOGGER.debug("Sent Participant Update Ack message to CLAMP - {}", participantUpdateAck);
     }
 
     /**
-     * Method to send ControlLoop Update/StateChange Ack message to runtime.
+     * Method to send AutomationComposition Update/StateChange Ack message to runtime.
      *
-     * @param controlLoopAck ControlLoop Update/StateChange Ack
+     * @param automationCompositionAck AutomationComposition Update/StateChange Ack
      */
-    public void sendControlLoopAck(final ControlLoopAck controlLoopAck) {
+    public void sendAutomationCompositionAck(final AutomationCompositionAck automationCompositionAck) {
         if (!active) {
-            throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
+            throw new AutomationCompositionRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
         }
-        topicSinkClient.send(controlLoopAck);
-        LOGGER.debug("Sent ControlLoop Update/StateChange Ack to runtime - {}", controlLoopAck);
+        topicSinkClient.send(automationCompositionAck);
+        LOGGER.debug("Sent AutomationComposition Update/StateChange Ack to runtime - {}", automationCompositionAck);
     }
 
     /**
@@ -134,7 +134,7 @@
      */
     public void sendHeartbeat(final ParticipantStatus participantStatus) {
         if (!active) {
-            throw new ControlLoopRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
+            throw new AutomationCompositionRuntimeException(Status.NOT_ACCEPTABLE, NOT_ACTIVE_TEXT);
         }
         topicSinkClient.send(participantStatus);
         LOGGER.debug("Sent Participant heartbeat to CLAMP - {}", participantStatus);
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantRegisterAckListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantRegisterAckListener.java
similarity index 81%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantRegisterAckListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantRegisterAckListener.java
index 7be4608..e29fa6f 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantRegisterAckListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantRegisterAckListener.java
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegisterAck;
 import org.springframework.stereotype.Component;
 
 /**
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantStatusReqListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantStatusReqListener.java
similarity index 81%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantStatusReqListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantStatusReqListener.java
index 9e978fe..7af3678 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantStatusReqListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantStatusReqListener.java
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatusReq;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatusReq;
 import org.springframework.stereotype.Component;
 
 /**
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantUpdateListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantUpdateListener.java
similarity index 81%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantUpdateListener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantUpdateListener.java
index da45501..19eb5fb 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantUpdateListener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantUpdateListener.java
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
 import org.springframework.stereotype.Component;
 
 /**
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/AutomationCompositionHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/AutomationCompositionHandler.java
new file mode 100644
index 0000000..7e1fb54
--- /dev/null
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/AutomationCompositionHandler.java
@@ -0,0 +1,476 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.stream.Collectors;
+import lombok.Getter;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementAck;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementDefinition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUpdates;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUtils;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionStateChange;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/*
+ * This class is responsible for managing the state of all automation compositions in the participant.
+ */
+@Component
+public class AutomationCompositionHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AutomationCompositionHandler.class);
+
+    private final ToscaConceptIdentifier participantType;
+    private final ToscaConceptIdentifier participantId;
+    private final ParticipantMessagePublisher publisher;
+
+    @Getter
+    private final Map<ToscaConceptIdentifier, AutomationComposition> automationCompositionMap = new LinkedHashMap<>();
+
+    @Getter
+    private final Map<UUID, AutomationCompositionElement> elementsOnThisParticipant = new LinkedHashMap<>();
+
+    @Getter
+    private List<AutomationCompositionElementListener> listeners = new ArrayList<>();
+
+    /**
+     * Constructor, set the participant ID and messageSender.
+     *
+     * @param parameters the parameters of the participant
+     * @param publisher the ParticipantMessage Publisher
+     */
+    public AutomationCompositionHandler(ParticipantParameters parameters, ParticipantMessagePublisher publisher) {
+        this.participantType = parameters.getIntermediaryParameters().getParticipantType();
+        this.participantId = parameters.getIntermediaryParameters().getParticipantId();
+        this.publisher = publisher;
+    }
+
+    public void registerAutomationCompositionElementListener(AutomationCompositionElementListener listener) {
+        listeners.add(listener);
+    }
+
+    /**
+     * Handle a automation composition element state change message.
+     *
+     * @param automationCompositionId the automationComposition Id
+     * @param id the automationComposition UUID
+     * @param orderedState the current state
+     * @param newState the ordered state
+     * @return automationCompositionElement the updated automation composition element
+     */
+    public AutomationCompositionElement updateAutomationCompositionElementState(
+        ToscaConceptIdentifier automationCompositionId, UUID id, AutomationCompositionOrderedState orderedState,
+        AutomationCompositionState newState) {
+
+        if (id == null) {
+            LOGGER.warn("Cannot update Automation composition element state, id is null");
+            return null;
+        }
+
+        // Update states of AutomationCompositionElement in automationCompositionMap
+        for (var automationComposition : automationCompositionMap.values()) {
+            var element = automationComposition.getElements().get(id);
+            if (element != null) {
+                element.setOrderedState(orderedState);
+                element.setState(newState);
+            }
+            var checkOpt = automationComposition.getElements().values().stream()
+                .filter(acElement -> !newState.equals(acElement.getState())).findAny();
+            if (checkOpt.isEmpty()) {
+                automationComposition.setState(newState);
+                automationComposition.setOrderedState(orderedState);
+            }
+        }
+
+        // Update states of AutomationCompositionElement in elementsOnThisParticipant
+        var acElement = elementsOnThisParticipant.get(id);
+        if (acElement != null) {
+            var automationCompositionStateChangeAck =
+                new AutomationCompositionAck(ParticipantMessageType.AUTOMATION_COMPOSITION_STATECHANGE_ACK);
+            automationCompositionStateChangeAck.setParticipantId(participantId);
+            automationCompositionStateChangeAck.setParticipantType(participantType);
+            automationCompositionStateChangeAck.setAutomationCompositionId(automationCompositionId);
+            acElement.setOrderedState(orderedState);
+            acElement.setState(newState);
+            automationCompositionStateChangeAck.getAutomationCompositionResultMap().put(acElement.getId(),
+                new AutomationCompositionElementAck(newState, true,
+                    "Automation composition element {} state changed to {}\", id, newState)"));
+            LOGGER.debug("Automation composition element {} state changed to {}", id, newState);
+            automationCompositionStateChangeAck
+                .setMessage("AutomationCompositionElement state changed to {} " + newState);
+            automationCompositionStateChangeAck.setResult(true);
+            publisher.sendAutomationCompositionAck(automationCompositionStateChangeAck);
+            return acElement;
+        }
+        return null;
+    }
+
+    /**
+     * Handle a automation composition element statistics.
+     *
+     * @param id automation composition element id
+     * @param elementStatistics automation composition element Statistics
+     */
+    public void updateAutomationCompositionElementStatistics(UUID id, AcElementStatistics elementStatistics) {
+        var acElement = elementsOnThisParticipant.get(id);
+        if (acElement != null) {
+            elementStatistics.setParticipantId(participantId);
+            elementStatistics.setId(id);
+            acElement.setAcElementStatistics(elementStatistics);
+        }
+    }
+
+    /**
+     * Handle a automation composition state change message.
+     *
+     * @param stateChangeMsg the state change message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    public void handleAutomationCompositionStateChange(AutomationCompositionStateChange stateChangeMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        if (stateChangeMsg.getAutomationCompositionId() == null) {
+            return;
+        }
+
+        var automationComposition = automationCompositionMap.get(stateChangeMsg.getAutomationCompositionId());
+
+        if (automationComposition == null) {
+            var automationCompositionAck =
+                new AutomationCompositionAck(ParticipantMessageType.AUTOMATION_COMPOSITION_STATECHANGE_ACK);
+            automationCompositionAck.setParticipantId(participantId);
+            automationCompositionAck.setParticipantType(participantType);
+            automationCompositionAck.setMessage("Automation composition " + stateChangeMsg.getAutomationCompositionId()
+                + " does not use this participant " + participantId);
+            automationCompositionAck.setResult(false);
+            automationCompositionAck.setResponseTo(stateChangeMsg.getMessageId());
+            automationCompositionAck.setAutomationCompositionId(stateChangeMsg.getAutomationCompositionId());
+            publisher.sendAutomationCompositionAck(automationCompositionAck);
+            LOGGER.debug("Automation composition {} does not use this participant",
+                stateChangeMsg.getAutomationCompositionId());
+            return;
+        }
+
+        handleState(automationComposition, stateChangeMsg.getOrderedState(), stateChangeMsg.getStartPhase(),
+            acElementDefinitions);
+    }
+
+    /**
+     * Method to handle state changes.
+     *
+     * @param automationComposition participant response
+     * @param orderedState automation composition ordered state
+     * @param startPhaseMsg startPhase from message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    private void handleState(final AutomationComposition automationComposition,
+        AutomationCompositionOrderedState orderedState, Integer startPhaseMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        switch (orderedState) {
+            case UNINITIALISED:
+                handleUninitialisedState(automationComposition, orderedState, startPhaseMsg, acElementDefinitions);
+                break;
+            case PASSIVE:
+                handlePassiveState(automationComposition, orderedState, startPhaseMsg, acElementDefinitions);
+                break;
+            case RUNNING:
+                handleRunningState(automationComposition, orderedState, startPhaseMsg, acElementDefinitions);
+                break;
+            default:
+                LOGGER.debug("StateChange message has no state, state is null {}",
+                    automationComposition.getDefinition());
+                break;
+        }
+    }
+
+    /**
+     * Handle a automation composition update message.
+     *
+     * @param updateMsg the update message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    public void handleAutomationCompositionUpdate(AutomationCompositionUpdate updateMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+
+        if (!updateMsg.appliesTo(participantType, participantId)) {
+            return;
+        }
+
+        if (0 == updateMsg.getStartPhase()) {
+            handleAcUpdatePhase0(updateMsg, acElementDefinitions);
+        } else {
+            handleAcUpdatePhaseN(updateMsg, acElementDefinitions);
+        }
+    }
+
+    private void handleAcUpdatePhase0(AutomationCompositionUpdate updateMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        var automationComposition = automationCompositionMap.get(updateMsg.getAutomationCompositionId());
+
+        // TODO: Updates to existing AutomationCompositions are not supported yet (Addition/Removal of
+        // AutomationComposition
+        // elements to existing AutomationComposition has to be supported).
+        if (automationComposition != null) {
+            var automationCompositionUpdateAck =
+                new AutomationCompositionAck(ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE_ACK);
+            automationCompositionUpdateAck.setParticipantId(participantId);
+            automationCompositionUpdateAck.setParticipantType(participantType);
+
+            automationCompositionUpdateAck.setMessage("Automation composition " + updateMsg.getAutomationCompositionId()
+                + " already defined on participant " + participantId);
+            automationCompositionUpdateAck.setResult(false);
+            automationCompositionUpdateAck.setResponseTo(updateMsg.getMessageId());
+            automationCompositionUpdateAck.setAutomationCompositionId(updateMsg.getAutomationCompositionId());
+            publisher.sendAutomationCompositionAck(automationCompositionUpdateAck);
+            return;
+        }
+
+        if (updateMsg.getParticipantUpdatesList().isEmpty()) {
+            LOGGER.warn("No AutomationCompositionElement updates in message {}",
+                updateMsg.getAutomationCompositionId());
+            return;
+        }
+
+        var acElements = storeElementsOnThisParticipant(updateMsg.getParticipantUpdatesList());
+
+        var acElementMap = prepareAcElementMap(acElements);
+        automationComposition = new AutomationComposition();
+        automationComposition.setDefinition(updateMsg.getAutomationCompositionId());
+        automationComposition.setElements(acElementMap);
+        automationCompositionMap.put(updateMsg.getAutomationCompositionId(), automationComposition);
+
+        handleAutomationCompositionElementUpdate(acElements, acElementDefinitions, updateMsg.getStartPhase(),
+            updateMsg.getAutomationCompositionId());
+    }
+
+    private void handleAcUpdatePhaseN(AutomationCompositionUpdate updateMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+
+        var acElementList = updateMsg.getParticipantUpdatesList().stream()
+            .flatMap(participantUpdate -> participantUpdate.getAutomationCompositionElementList().stream())
+            .filter(element -> participantType.equals(element.getParticipantType())).collect(Collectors.toList());
+
+        handleAutomationCompositionElementUpdate(acElementList, acElementDefinitions, updateMsg.getStartPhase(),
+            updateMsg.getAutomationCompositionId());
+    }
+
+    private void handleAutomationCompositionElementUpdate(List<AutomationCompositionElement> acElements,
+        List<AutomationCompositionElementDefinition> acElementDefinitions, Integer startPhaseMsg,
+        ToscaConceptIdentifier automationCompositionId) {
+        try {
+            for (var element : acElements) {
+                var acElementNodeTemplate = getAcElementNodeTemplate(acElementDefinitions, element.getDefinition());
+                if (acElementNodeTemplate != null) {
+                    int startPhase = ParticipantUtils.findStartPhase(acElementNodeTemplate.getProperties());
+                    if (startPhaseMsg.equals(startPhase)) {
+                        for (var acElementListener : listeners) {
+                            acElementListener.automationCompositionElementUpdate(automationCompositionId, element,
+                                acElementNodeTemplate);
+                        }
+                    }
+                }
+            }
+        } catch (PfModelException e) {
+            LOGGER.debug("Automation composition element update failed {}", automationCompositionId);
+        }
+
+    }
+
+    private ToscaNodeTemplate getAcElementNodeTemplate(
+        List<AutomationCompositionElementDefinition> acElementDefinitions, ToscaConceptIdentifier acElementDefId) {
+
+        for (var acElementDefinition : acElementDefinitions) {
+            if (acElementDefId.getName().contains(acElementDefinition.getAcElementDefinitionId().getName())) {
+                return acElementDefinition.getAutomationCompositionElementToscaNodeTemplate();
+            }
+        }
+        return null;
+    }
+
+    private List<AutomationCompositionElement> storeElementsOnThisParticipant(
+        List<ParticipantUpdates> participantUpdates) {
+        var acElementList = participantUpdates.stream()
+            .flatMap(participantUpdate -> participantUpdate.getAutomationCompositionElementList().stream())
+            .filter(element -> participantType.equals(element.getParticipantType())).collect(Collectors.toList());
+
+        for (var element : acElementList) {
+            elementsOnThisParticipant.put(element.getId(), element);
+        }
+        return acElementList;
+    }
+
+    private Map<UUID, AutomationCompositionElement> prepareAcElementMap(List<AutomationCompositionElement> acElements) {
+        Map<UUID, AutomationCompositionElement> acElementMap = new LinkedHashMap<>();
+        for (var element : acElements) {
+            acElementMap.put(element.getId(), element);
+        }
+        return acElementMap;
+    }
+
+    /**
+     * Method to handle when the new state from participant is UNINITIALISED state.
+     *
+     * @param automationComposition participant response
+     * @param orderedState orderedState
+     * @param startPhaseMsg startPhase from message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    private void handleUninitialisedState(final AutomationComposition automationComposition,
+        final AutomationCompositionOrderedState orderedState, Integer startPhaseMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        handleStateChange(automationComposition, orderedState, startPhaseMsg, acElementDefinitions);
+        boolean isAllUninitialised = automationComposition.getElements().values().stream()
+            .filter(element -> !AutomationCompositionState.UNINITIALISED.equals(element.getState())).findAny()
+            .isEmpty();
+        if (isAllUninitialised) {
+            automationCompositionMap.remove(automationComposition.getDefinition());
+            automationComposition.getElements().values()
+                .forEach(element -> elementsOnThisParticipant.remove(element.getId()));
+        }
+    }
+
+    /**
+     * Method to handle when the new state from participant is PASSIVE state.
+     *
+     * @param automationComposition participant response
+     * @param orderedState orderedState
+     * @param startPhaseMsg startPhase from message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    private void handlePassiveState(final AutomationComposition automationComposition,
+        final AutomationCompositionOrderedState orderedState, Integer startPhaseMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        handleStateChange(automationComposition, orderedState, startPhaseMsg, acElementDefinitions);
+    }
+
+    /**
+     * Method to handle when the new state from participant is RUNNING state.
+     *
+     * @param automationComposition participant response
+     * @param orderedState orderedState
+     * @param startPhaseMsg startPhase from message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    private void handleRunningState(final AutomationComposition automationComposition,
+        final AutomationCompositionOrderedState orderedState, Integer startPhaseMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        handleStateChange(automationComposition, orderedState, startPhaseMsg, acElementDefinitions);
+    }
+
+    /**
+     * Method to update the state of automation composition elements.
+     *
+     * @param automationComposition participant status in memory
+     * @param orderedState orderedState the new ordered state the participant should have
+     * @param startPhaseMsg startPhase from message
+     * @param acElementDefinitions the list of AutomationCompositionElementDefinition
+     */
+    private void handleStateChange(AutomationComposition automationComposition,
+        final AutomationCompositionOrderedState orderedState, Integer startPhaseMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+
+        if (orderedState.equals(automationComposition.getOrderedState())) {
+            var automationCompositionAck =
+                new AutomationCompositionAck(ParticipantMessageType.AUTOMATION_COMPOSITION_STATECHANGE_ACK);
+            automationCompositionAck.setParticipantId(participantId);
+            automationCompositionAck.setParticipantType(participantType);
+            automationCompositionAck.setMessage("Automation composition is already in state " + orderedState);
+            automationCompositionAck.setResult(false);
+            automationCompositionAck.setAutomationCompositionId(automationComposition.getDefinition());
+            publisher.sendAutomationCompositionAck(automationCompositionAck);
+            return;
+        }
+
+        automationComposition.getElements().values().stream()
+            .forEach(acElement -> automationCompositionElementStateChange(automationComposition, orderedState,
+                acElement, startPhaseMsg, acElementDefinitions));
+    }
+
+    private void automationCompositionElementStateChange(AutomationComposition automationComposition,
+        AutomationCompositionOrderedState orderedState, AutomationCompositionElement acElement, Integer startPhaseMsg,
+        List<AutomationCompositionElementDefinition> acElementDefinitions) {
+        var acElementNodeTemplate = getAcElementNodeTemplate(acElementDefinitions, acElement.getDefinition());
+        if (acElementNodeTemplate != null) {
+            int startPhase = ParticipantUtils.findStartPhase(acElementNodeTemplate.getProperties());
+            if (startPhaseMsg.equals(startPhase)) {
+                for (var acElementListener : listeners) {
+                    try {
+                        acElementListener.automationCompositionElementStateChange(automationComposition.getDefinition(),
+                            acElement.getId(), acElement.getState(), orderedState);
+                    } catch (PfModelException e) {
+                        LOGGER.debug("Automation composition element update failed {}",
+                            automationComposition.getDefinition());
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Get automation compositions as a {@link ConrolLoops} class.
+     *
+     * @return the automation compositions
+     */
+    public AutomationCompositions getAutomationCompositions() {
+        var automationCompositions = new AutomationCompositions();
+        automationCompositions.setAutomationCompositionList(new ArrayList<>(automationCompositionMap.values()));
+        return automationCompositions;
+    }
+
+    /**
+     * Get properties of a automation composition element.
+     *
+     * @param id the automation composition element id
+     * @return the instance properties
+     */
+    public Map<String, ToscaProperty> getAcElementInstanceProperties(UUID id) {
+        Map<String, ToscaProperty> propertiesMap = new HashMap<>();
+        for (var automationComposition : automationCompositionMap.values()) {
+            var element = automationComposition.getElements().get(id);
+            if (element != null) {
+                propertiesMap.putAll(element.getPropertiesMap());
+            }
+        }
+        return propertiesMap;
+    }
+}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/IntermediaryActivator.java
similarity index 88%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/IntermediaryActivator.java
index e42fac4..0144f66 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/IntermediaryActivator.java
@@ -19,13 +19,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.List;
 import lombok.Getter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.common.endpoints.event.comm.TopicSource;
@@ -61,16 +61,15 @@
      * @param publishers list of Publishers
      * @param listeners list of Listeners
      */
-    public <T> IntermediaryActivator(final ParticipantParameters parameters,
-            ParticipantHandler participantHandler, List<Publisher> publishers,
-            List<Listener<T>> listeners) {
+    public <T> IntermediaryActivator(final ParticipantParameters parameters, ParticipantHandler participantHandler,
+        List<Publisher> publishers, List<Listener<T>> listeners) {
         this.participantHandler = participantHandler;
 
-        topicSinks = TopicEndpointManager.getManager()
-                .addTopicSinks(parameters.getIntermediaryParameters().getClampControlLoopTopics().getTopicSinks());
+        topicSinks = TopicEndpointManager.getManager().addTopicSinks(
+            parameters.getIntermediaryParameters().getClampAutomationCompositionTopics().getTopicSinks());
 
-        topicSources = TopicEndpointManager.getManager()
-                .addTopicSources(parameters.getIntermediaryParameters().getClampControlLoopTopics().getTopicSources());
+        topicSources = TopicEndpointManager.getManager().addTopicSources(
+            parameters.getIntermediaryParameters().getClampAutomationCompositionTopics().getTopicSources());
 
         msgDispatcher = new MessageTypeDispatcher(MSG_TYPE_NAMES);
 
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/Listener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/Listener.java
similarity index 94%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/Listener.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/Listener.java
index 19bad9a..56ed554 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/Listener.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/Listener.java
@@ -19,7 +19,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import org.onap.policy.common.endpoints.listeners.ScoListener;
 
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java
similarity index 62%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java
index 89a13a8..fa02f3d 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java
@@ -20,7 +20,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import java.time.Instant;
 import java.util.ArrayList;
@@ -32,33 +32,33 @@
 import java.util.stream.Collectors;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatisticsList;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElementDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopInfo;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantHealthStatus;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantAckMessage;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessage;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatusReq;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatisticsList;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementDefinition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionInfo;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.concepts.Participant;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantHealthStatus;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantStatistics;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionStateChange;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantAckMessage;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessage;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatus;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatusReq;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdateAck;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
@@ -79,7 +79,7 @@
     @Getter
     private final ToscaConceptIdentifier participantId;
 
-    private final ControlLoopHandler controlLoopHandler;
+    private final AutomationCompositionHandler automationCompositionHandler;
     private final ParticipantStatistics participantStatistics;
     private final ParticipantMessagePublisher publisher;
 
@@ -89,7 +89,7 @@
     @Setter
     private ParticipantHealthStatus healthStatus = ParticipantHealthStatus.UNKNOWN;
 
-    private final List<ControlLoopElementDefinition> clElementDefsOnThisParticipant = new ArrayList<>();
+    private final List<AutomationCompositionElementDefinition> acElementDefsOnThisParticipant = new ArrayList<>();
 
     /**
      * Constructor, set the participant ID and sender.
@@ -98,11 +98,11 @@
      * @param publisher the publisher for sending responses to messages
      */
     public ParticipantHandler(ParticipantParameters parameters, ParticipantMessagePublisher publisher,
-            ControlLoopHandler controlLoopHandler) {
+        AutomationCompositionHandler automationCompositionHandler) {
         this.participantType = parameters.getIntermediaryParameters().getParticipantType();
         this.participantId = parameters.getIntermediaryParameters().getParticipantId();
         this.publisher = publisher;
-        this.controlLoopHandler = controlLoopHandler;
+        this.automationCompositionHandler = automationCompositionHandler;
         this.participantStatistics = new ParticipantStatistics();
         this.participantStatistics.setParticipantId(participantId);
         this.participantStatistics.setState(state);
@@ -121,42 +121,45 @@
     }
 
     /**
-     * Update ControlLoopElement statistics. The control loop elements listening will be
-     * notified to retrieve statistics from respective controlloop elements, and controlloopelements
+     * Update AutomationCompositionElement statistics. The automation composition elements listening will be
+     * notified to retrieve statistics from respective automation composition elements, and automation
+     * compositionelements
      * data on the handler will be updated.
      *
-     * @param controlLoops the control loops
-     * @param clElementListener control loop element listener
+     * @param automationCompositions the automation compositions
+     * @param acElementListener automation composition element listener
      */
-    private void updateClElementStatistics(ControlLoops controlLoops, ControlLoopElementListener clElementListener) {
-        for (ControlLoop controlLoop : controlLoops.getControlLoopList()) {
-            for (ControlLoopElement element : controlLoop.getElements().values()) {
+    private void updateAcElementStatistics(AutomationCompositions automationCompositions,
+        AutomationCompositionElementListener acElementListener) {
+        for (AutomationComposition automationComposition : automationCompositions.getAutomationCompositionList()) {
+            for (AutomationCompositionElement element : automationComposition.getElements().values()) {
                 try {
-                    clElementListener.handleStatistics(element.getId());
+                    acElementListener.handleStatistics(element.getId());
                 } catch (PfModelException e) {
-                    LOGGER.debug("Getting statistics for Control loop element failed for element ID {}",
-                            element.getId(), e);
+                    LOGGER.debug("Getting statistics for automation composition element failed for element ID {}",
+                        element.getId(), e);
                 }
             }
         }
     }
 
     /**
-     * Handle a control loop update message.
+     * Handle a automation composition update message.
      *
      * @param updateMsg the update message
      */
-    public void handleControlLoopUpdate(ControlLoopUpdate updateMsg) {
-        controlLoopHandler.handleControlLoopUpdate(updateMsg, clElementDefsOnThisParticipant);
+    public void handleAutomationCompositionUpdate(AutomationCompositionUpdate updateMsg) {
+        automationCompositionHandler.handleAutomationCompositionUpdate(updateMsg, acElementDefsOnThisParticipant);
     }
 
     /**
-     * Handle a control loop state change message.
+     * Handle a automation composition state change message.
      *
      * @param stateChangeMsg the state change message
      */
-    public void handleControlLoopStateChange(ControlLoopStateChange stateChangeMsg) {
-        controlLoopHandler.handleControlLoopStateChange(stateChangeMsg, clElementDefsOnThisParticipant);
+    public void handleAutomationCompositionStateChange(AutomationCompositionStateChange stateChangeMsg) {
+        automationCompositionHandler.handleAutomationCompositionStateChange(stateChangeMsg,
+            acElementDefsOnThisParticipant);
     }
 
     private void handleStateChange(ParticipantState newParticipantState, ParticipantUpdateAck response) {
@@ -221,15 +224,15 @@
     }
 
     /**
-     * Get common properties of a controlloopelement.
+     * Get common properties of a automation composition element.
      *
-     * @param clElementDef the control loop element definition
+     * @param acElementDef the automation composition element definition
      * @return the common properties
      */
-    public Map<String, ToscaProperty> getClElementDefinitionCommonProperties(ToscaConceptIdentifier clElementDef) {
+    public Map<String, ToscaProperty> getAcElementDefinitionCommonProperties(ToscaConceptIdentifier acElementDef) {
         Map<String, ToscaProperty> commonPropertiesMap = new HashMap<>();
-        clElementDefsOnThisParticipant.stream().forEach(definition -> {
-            if (definition.getClElementDefinitionId().equals(clElementDef)) {
+        acElementDefsOnThisParticipant.stream().forEach(definition -> {
+            if (definition.getAcElementDefinitionId().equals(acElementDef)) {
                 commonPropertiesMap.putAll(definition.getCommonPropertiesMap());
             }
         });
@@ -257,7 +260,7 @@
     }
 
     /**
-     * Method to send ParticipantRegister message to controlloop runtime.
+     * Method to send ParticipantRegister message to automation composition runtime.
      */
     public void sendParticipantRegister() {
         var participantRegister = new ParticipantRegister();
@@ -274,7 +277,7 @@
      */
     public void handleParticipantRegisterAck(ParticipantRegisterAck participantRegisterAckMsg) {
         LOGGER.debug("ParticipantRegisterAck message received as responseTo {}",
-                participantRegisterAckMsg.getResponseTo());
+            participantRegisterAckMsg.getResponseTo());
         statusToPassive();
         publisher.sendParticipantStatus(makeHeartbeat(false));
     }
@@ -291,7 +294,7 @@
     }
 
     /**
-     * Method to send ParticipantDeregister message to controlloop runtime.
+     * Method to send ParticipantDeregister message to automation composition runtime.
      */
     public void sendParticipantDeregister() {
         var participantDeregister = new ParticipantDeregister();
@@ -308,7 +311,7 @@
      */
     public void handleParticipantDeregisterAck(ParticipantDeregisterAck participantDeregisterAckMsg) {
         LOGGER.debug("ParticipantDeregisterAck message received as responseTo {}",
-                participantDeregisterAckMsg.getResponseTo());
+            participantDeregisterAckMsg.getResponseTo());
     }
 
     /**
@@ -318,27 +321,28 @@
      */
     public void handleParticipantUpdate(ParticipantUpdate participantUpdateMsg) {
         LOGGER.debug("ParticipantUpdate message received for participantId {}",
-                participantUpdateMsg.getParticipantId());
+            participantUpdateMsg.getParticipantId());
 
         if (!participantUpdateMsg.getParticipantDefinitionUpdates().isEmpty()) {
             statusToPassive();
-            // This message is to commission the controlloop
+            // This message is to commission the automation composition
             for (ParticipantDefinition participantDefinition : participantUpdateMsg.getParticipantDefinitionUpdates()) {
                 if (participantDefinition.getParticipantType().equals(participantType)) {
-                    clElementDefsOnThisParticipant.addAll(participantDefinition.getControlLoopElementDefinitionList());
+                    acElementDefsOnThisParticipant
+                        .addAll(participantDefinition.getAutomationCompositionElementDefinitionList());
                     break;
                 }
             }
         } else {
-            // This message is to decommission the controlloop
-            clElementDefsOnThisParticipant.clear();
+            // This message is to decommission the automation composition
+            acElementDefsOnThisParticipant.clear();
             this.state = ParticipantState.TERMINATED;
         }
         sendParticipantUpdateAck(participantUpdateMsg.getMessageId());
     }
 
     /**
-     * Method to send ParticipantUpdateAck message to controlloop runtime.
+     * Method to send ParticipantUpdateAck message to automation composition runtime.
      */
     public void sendParticipantUpdateAck(UUID messageId) {
         var participantUpdateAck = new ParticipantUpdateAck();
@@ -359,13 +363,13 @@
     }
 
     /**
-     * Method to send heartbeat to controlloop runtime.
+     * Method to send heartbeat to automation composition runtime.
      */
     public ParticipantStatus makeHeartbeat(boolean responseToParticipantStatusReq) {
         if (!responseToParticipantStatusReq) {
-            var controlLoops = controlLoopHandler.getControlLoops();
-            for (var clElementListener : controlLoopHandler.getListeners()) {
-                updateClElementStatistics(controlLoops, clElementListener);
+            var automationCompositions = automationCompositionHandler.getAutomationCompositions();
+            for (var acElementListener : automationCompositionHandler.getListeners()) {
+                updateAcElementStatistics(automationCompositions, acElementListener);
             }
         }
         this.participantStatistics.setState(state);
@@ -378,38 +382,35 @@
         heartbeat.setParticipantType(participantType);
         heartbeat.setHealthStatus(healthStatus);
         heartbeat.setState(state);
-        heartbeat.setControlLoopInfoList(getControlLoopInfoList());
+        heartbeat.setAutomationCompositionInfoList(getAutomationCompositionInfoList());
 
         if (responseToParticipantStatusReq) {
             ParticipantDefinition participantDefinition = new ParticipantDefinition();
             participantDefinition.setParticipantId(participantId);
             participantDefinition.setParticipantType(participantType);
-            participantDefinition.setControlLoopElementDefinitionList(clElementDefsOnThisParticipant);
+            participantDefinition.setAutomationCompositionElementDefinitionList(acElementDefsOnThisParticipant);
             heartbeat.setParticipantDefinitionUpdates(List.of(participantDefinition));
         }
 
         return heartbeat;
     }
 
-    private List<ControlLoopInfo> getControlLoopInfoList() {
-        List<ControlLoopInfo> controlLoopInfoList = new ArrayList<>();
-        for (var entry : controlLoopHandler.getControlLoopMap().entrySet()) {
-            var clInfo = new ControlLoopInfo();
-            clInfo.setControlLoopId(entry.getKey());
-            var clStatitistics = new ControlLoopStatistics();
-            clStatitistics.setControlLoopId(entry.getKey());
-            var clElementStatisticsList = new ClElementStatisticsList();
-            clElementStatisticsList
-                    .setClElementStatistics(entry.getValue().getElements().values()
-                            .stream()
-                            .map(ControlLoopElement::getClElementStatistics)
-                            .filter(Objects::nonNull)
-                            .collect(Collectors.toList()));
-            clStatitistics.setClElementStatisticsList(clElementStatisticsList);
-            clInfo.setControlLoopStatistics(clStatitistics);
-            clInfo.setState(entry.getValue().getState());
-            controlLoopInfoList.add(clInfo);
+    private List<AutomationCompositionInfo> getAutomationCompositionInfoList() {
+        List<AutomationCompositionInfo> automationCompositionInfoList = new ArrayList<>();
+        for (var entry : automationCompositionHandler.getAutomationCompositionMap().entrySet()) {
+            var acInfo = new AutomationCompositionInfo();
+            acInfo.setAutomationCompositionId(entry.getKey());
+            var acStatitistics = new AutomationCompositionStatistics();
+            acStatitistics.setAutomationCompositionId(entry.getKey());
+            var acElementStatisticsList = new AcElementStatisticsList();
+            acElementStatisticsList.setAcElementStatistics(entry.getValue().getElements().values().stream()
+                .map(AutomationCompositionElement::getAcElementStatistics).filter(Objects::nonNull)
+                .collect(Collectors.toList()));
+            acStatitistics.setAcElementStatisticsList(acElementStatisticsList);
+            acInfo.setAutomationCompositionStatistics(acStatitistics);
+            acInfo.setState(entry.getValue().getState());
+            automationCompositionInfoList.add(acInfo);
         }
-        return controlLoopInfoList;
+        return automationCompositionInfoList;
     }
 }
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/Publisher.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/Publisher.java
similarity index 93%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/Publisher.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/Publisher.java
index 287d7c0..72aa645 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/Publisher.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/Publisher.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import java.util.List;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/parameters/ParticipantIntermediaryParameters.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/parameters/ParticipantIntermediaryParameters.java
similarity index 92%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/parameters/ParticipantIntermediaryParameters.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/parameters/ParticipantIntermediaryParameters.java
index fdc451e..dcbfd1b 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/parameters/ParticipantIntermediaryParameters.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/parameters/ParticipantIntermediaryParameters.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.parameters;
+package org.onap.policy.clamp.acm.participant.intermediary.parameters;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
@@ -50,12 +50,12 @@
     @Valid
     private ToscaConceptIdentifier participantType;
 
-    // The time interval for periodic reporting of status to the CLAMP control loop server
+    // The time interval for periodic reporting of status to the CLAMP ACM server
     @Valid
     @Positive
     private long reportingTimeIntervalMs;
 
     @NotNull
     @ParameterGroupConstraint
-    private TopicParameterGroup clampControlLoopTopics;
+    private TopicParameterGroup clampAutomationCompositionTopics;
 }
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/parameters/ParticipantParameters.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/parameters/ParticipantParameters.java
similarity index 92%
rename from participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/parameters/ParticipantParameters.java
rename to participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/parameters/ParticipantParameters.java
index c350b1b..ca9c566 100644
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/parameters/ParticipantParameters.java
+++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/parameters/ParticipantParameters.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.parameters;
+package org.onap.policy.clamp.acm.participant.intermediary.parameters;
 
 public interface ParticipantParameters {
 
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ControlLoopElementListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ControlLoopElementListener.java
deleted file mode 100644
index 58378fa..0000000
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ControlLoopElementListener.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.api;
-
-import java.util.UUID;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-
-/**
- * This interface is implemented by participant implementations to receive updates on control loop elements.
- */
-public interface ControlLoopElementListener {
-    /**
-     * Handle a control loop element state change.
-     *
-     * @param controlLoopElementId the ID of the control loop element
-     * @param currentState the current state of the control loop element
-     * @param newState the state to which the control loop element is changing to
-     * @throws PfModelException in case of a model exception
-     */
-    public void controlLoopElementStateChange(ToscaConceptIdentifier controlLoopId, UUID controlLoopElementId,
-        ControlLoopState currentState, ControlLoopOrderedState newState) throws PfModelException;
-
-    /**
-     * Handle an update on a control loop element.
-     *
-     * @param element the information on the control loop element
-     * @param controlLoopElementDefinition toscaNodeTemplate
-     * @throws PfModelException from Policy framework
-     */
-    public void controlLoopElementUpdate(ToscaConceptIdentifier controlLoopId, ControlLoopElement element,
-            ToscaNodeTemplate controlLoopElementDefinition) throws PfModelException;
-
-    /**
-     * Handle controlLoopElement statistics.
-     *
-     * @param controlLoopElementId controlLoopElement id
-     * @throws PfModelException in case of a model exception
-     */
-    public void handleStatistics(UUID controlLoopElementId) throws PfModelException;
-}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java
deleted file mode 100644
index 0cb4963..0000000
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/ParticipantIntermediaryApi.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.api;
-
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
-
-/**
- * This interface is used by participant implementations to use the participant intermediary.
- */
-public interface ParticipantIntermediaryApi {
-
-    /**
-     * Register a listener for control loop elements that are mediated by the intermediary.
-     *
-     * @param controlLoopElementListener The control loop element listener to register
-     */
-    void registerControlLoopElementListener(ControlLoopElementListener controlLoopElementListener);
-
-    /**
-     * Get participants loops from the intermediary API.
-     *
-     * @param name the participant name, null for all
-     * @param version the participant version, null for all
-     * @return the participants
-     */
-    List<Participant> getParticipants(String name, String version);
-
-    /**
-     * Get common properties of a controlloopelement.
-     *
-     * @param clElementDef the control loop element definition
-     * @return the common properties
-     */
-    Map<String, ToscaProperty> getClElementDefinitionCommonProperties(ToscaConceptIdentifier clElementDef);
-
-    /**
-     * Update the state of a participant.
-     *
-     * @param definition the definition of the participant to update the state on
-     * @param state the state of the participant
-     * @return the participant
-     */
-    Participant updateParticipantState(ToscaConceptIdentifier definition, ParticipantState state);
-
-    /**
-     * Update the statistics of a participant.
-     *
-     * @param participantStatistics the statistics of the participant
-     */
-    void updateParticipantStatistics(ParticipantStatistics participantStatistics);
-
-    /**
-     * Get control loops from the intermediary API.
-     *
-     * @param name the control loop element name, null for all
-     * @param version the control loop element version, null for all
-     * @return the control loop elements
-     */
-    ControlLoops getControlLoops(String name, String version);
-
-    /**
-     * Get control loop elements from the intermediary API.
-     *
-     * @param name the control loop element name, null for all
-     * @param version the control loop element version, null for all
-     * @return the control loop elements
-     */
-    Map<UUID, ControlLoopElement> getControlLoopElements(String name, String version);
-
-    /**
-     * Get control loop element from the intermediary API.
-     *
-     * @param id control loop element ID
-     * @return the control loop element
-     */
-    ControlLoopElement getControlLoopElement(UUID id);
-
-    /**
-     * Update the state of a control loop element.
-     *
-     * @param id the ID of the control loop element to update the state on
-     * @param currentState the state of the control loop element
-     * @param newState the state of the control loop element
-     * @return ControlLoopElement updated control loop element
-     */
-    ControlLoopElement updateControlLoopElementState(ToscaConceptIdentifier controlLoopId,
-            UUID id, ControlLoopOrderedState currentState,
-            ControlLoopState newState, ParticipantMessageType messageType);
-
-    /**
-     * Update the control loop element statistics.
-     *
-     * @param id the ID of the control loop element to update the state on
-     * @param elementStatistics the updated statistics
-     */
-    void updateControlLoopElementStatistics(UUID id, ClElementStatistics elementStatistics);
-}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/impl/ParticipantIntermediaryApiImpl.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/impl/ParticipantIntermediaryApiImpl.java
deleted file mode 100644
index bbafc46..0000000
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/impl/ParticipantIntermediaryApiImpl.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.api.impl;
-
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ControlLoopHandler;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
-import org.springframework.stereotype.Component;
-
-/**
- * This class is api implementation used by participant intermediary.
- */
-@Component
-public class ParticipantIntermediaryApiImpl implements ParticipantIntermediaryApi {
-
-    // The handler for the participant intermediary
-    private final ParticipantHandler participantHandler;
-
-    // The handler for the controlLoop intermediary
-    private final ControlLoopHandler controlLoopHandler;
-
-    /**
-     * Constructor.
-     *
-     * @param participantHandler ParticipantHandler
-     * @param controlLoopHandler ControlLoopHandler
-     */
-    public ParticipantIntermediaryApiImpl(ParticipantHandler participantHandler,
-            ControlLoopHandler controlLoopHandler) {
-        this.participantHandler = participantHandler;
-        this.controlLoopHandler = controlLoopHandler;
-    }
-
-    @Override
-    public void registerControlLoopElementListener(ControlLoopElementListener controlLoopElementListener) {
-        controlLoopHandler.registerControlLoopElementListener(controlLoopElementListener);
-    }
-
-    @Override
-    public List<Participant> getParticipants(String name, String version) {
-        return List.of(participantHandler.getParticipant(name, version));
-    }
-
-    @Override
-    public Map<String, ToscaProperty> getClElementDefinitionCommonProperties(ToscaConceptIdentifier clElementDef) {
-        return participantHandler.getClElementDefinitionCommonProperties(clElementDef);
-    }
-
-    @Override
-    public Participant updateParticipantState(ToscaConceptIdentifier definition, ParticipantState state) {
-        return participantHandler.updateParticipantState(definition, state);
-    }
-
-    @Override
-    public void updateParticipantStatistics(ParticipantStatistics participantStatistics) {
-        participantHandler.updateParticipantStatistics(participantStatistics);
-    }
-
-    @Override
-    public ControlLoops getControlLoops(String name, String version) {
-        return controlLoopHandler.getControlLoops();
-    }
-
-    @Override
-    public Map<UUID, ControlLoopElement> getControlLoopElements(String name, String version) {
-        List<ControlLoop> controlLoops = controlLoopHandler.getControlLoops().getControlLoopList();
-
-        for (ControlLoop controlLoop : controlLoops) {
-            if (name.equals(controlLoop.getDefinition().getName())) {
-                return controlLoop.getElements();
-            }
-        }
-        return new LinkedHashMap<>();
-    }
-
-    @Override
-    public ControlLoopElement getControlLoopElement(UUID id) {
-        List<ControlLoop> controlLoops = controlLoopHandler.getControlLoops().getControlLoopList();
-
-        for (ControlLoop controlLoop : controlLoops) {
-            ControlLoopElement clElement = controlLoop.getElements().get(id);
-            if (clElement != null) {
-                return clElement;
-            }
-        }
-        return null;
-    }
-
-    @Override
-    public ControlLoopElement updateControlLoopElementState(ToscaConceptIdentifier controlLoopId,
-            UUID id, ControlLoopOrderedState currentState,
-            ControlLoopState newState, ParticipantMessageType messageType) {
-        return controlLoopHandler.updateControlLoopElementState(controlLoopId,
-            id, currentState, newState);
-    }
-
-    @Override
-    public void updateControlLoopElementStatistics(UUID id, ClElementStatistics elementStatistics) {
-        controlLoopHandler.updateControlLoopElementStatistics(id, elementStatistics);
-    }
-}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ControlLoopUpdateListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ControlLoopUpdateListener.java
deleted file mode 100644
index f9dec18..0000000
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ControlLoopUpdateListener.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
-
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.springframework.stereotype.Component;
-
-/**
- * Listener for Control Loop Update messages sent by CLAMP.
- */
-@Component
-public class ControlLoopUpdateListener extends ParticipantListener<ControlLoopUpdate> {
-
-    /**
-     * Constructs the object.
-     *
-     * @param participantHandler the handler for managing the state of the participant
-     */
-    public ControlLoopUpdateListener(final ParticipantHandler participantHandler) {
-        super(ControlLoopUpdate.class, participantHandler, participantHandler::handleControlLoopUpdate);
-    }
-
-    @Override
-    public String getType() {
-        return ParticipantMessageType.CONTROL_LOOP_UPDATE.name();
-    }
-}
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java
deleted file mode 100644
index 5a0f498..0000000
--- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.stream.Collectors;
-import lombok.Getter;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElementAck;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElementDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUtils;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
-import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-/*
- * This class is responsible for managing the state of all control loops in the participant.
- */
-@Component
-public class ControlLoopHandler {
-    private static final Logger LOGGER = LoggerFactory.getLogger(ControlLoopHandler.class);
-
-    private final ToscaConceptIdentifier participantType;
-    private final ToscaConceptIdentifier participantId;
-    private final ParticipantMessagePublisher publisher;
-
-    @Getter
-    private final Map<ToscaConceptIdentifier, ControlLoop> controlLoopMap = new LinkedHashMap<>();
-
-    @Getter
-    private final Map<UUID, ControlLoopElement> elementsOnThisParticipant = new LinkedHashMap<>();
-
-    @Getter
-    private List<ControlLoopElementListener> listeners = new ArrayList<>();
-
-    /**
-     * Constructor, set the participant ID and messageSender.
-     *
-     * @param parameters the parameters of the participant
-     * @param publisher the ParticipantMessage Publisher
-     */
-    public ControlLoopHandler(ParticipantParameters parameters, ParticipantMessagePublisher publisher) {
-        this.participantType = parameters.getIntermediaryParameters().getParticipantType();
-        this.participantId = parameters.getIntermediaryParameters().getParticipantId();
-        this.publisher = publisher;
-    }
-
-    public void registerControlLoopElementListener(ControlLoopElementListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     * Handle a control loop element state change message.
-     *
-     * @param controlLoopId the controlLoop Id
-     * @param id the controlLoop UUID
-     * @param orderedState the current state
-     * @param newState the ordered state
-     * @return controlLoopElement the updated controlloop element
-     */
-    public ControlLoopElement updateControlLoopElementState(ToscaConceptIdentifier controlLoopId, UUID id,
-            ControlLoopOrderedState orderedState, ControlLoopState newState) {
-
-        if (id == null) {
-            LOGGER.warn("Cannot update Control loop element state, id is null");
-            return null;
-        }
-
-        // Update states of ControlLoopElement in controlLoopMap
-        for (var controlLoop : controlLoopMap.values()) {
-            var element = controlLoop.getElements().get(id);
-            if (element != null) {
-                element.setOrderedState(orderedState);
-                element.setState(newState);
-            }
-            var checkOpt = controlLoop.getElements().values().stream()
-                    .filter(clElement -> !newState.equals(clElement.getState())).findAny();
-            if (checkOpt.isEmpty()) {
-                controlLoop.setState(newState);
-                controlLoop.setOrderedState(orderedState);
-            }
-        }
-
-        // Update states of ControlLoopElement in elementsOnThisParticipant
-        var clElement = elementsOnThisParticipant.get(id);
-        if (clElement != null) {
-            var controlLoopStateChangeAck = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK);
-            controlLoopStateChangeAck.setParticipantId(participantId);
-            controlLoopStateChangeAck.setParticipantType(participantType);
-            controlLoopStateChangeAck.setControlLoopId(controlLoopId);
-            clElement.setOrderedState(orderedState);
-            clElement.setState(newState);
-            controlLoopStateChangeAck.getControlLoopResultMap().put(clElement.getId(), new ControlLoopElementAck(
-                    newState, true, "Control loop element {} state changed to {}\", id, newState)"));
-            LOGGER.debug("Control loop element {} state changed to {}", id, newState);
-            controlLoopStateChangeAck.setMessage("ControlLoopElement state changed to {} " + newState);
-            controlLoopStateChangeAck.setResult(true);
-            publisher.sendControlLoopAck(controlLoopStateChangeAck);
-            return clElement;
-        }
-        return null;
-    }
-
-    /**
-     * Handle a control loop element statistics.
-     *
-     * @param id controlloop element id
-     * @param elementStatistics control loop element Statistics
-     */
-    public void updateControlLoopElementStatistics(UUID id, ClElementStatistics elementStatistics) {
-        var clElement = elementsOnThisParticipant.get(id);
-        if (clElement != null) {
-            elementStatistics.setParticipantId(participantId);
-            elementStatistics.setId(id);
-            clElement.setClElementStatistics(elementStatistics);
-        }
-    }
-
-    /**
-     * Handle a control loop state change message.
-     *
-     * @param stateChangeMsg the state change message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    public void handleControlLoopStateChange(ControlLoopStateChange stateChangeMsg,
-            List<ControlLoopElementDefinition> clElementDefinitions) {
-        if (stateChangeMsg.getControlLoopId() == null) {
-            return;
-        }
-
-        var controlLoop = controlLoopMap.get(stateChangeMsg.getControlLoopId());
-
-        if (controlLoop == null) {
-            var controlLoopAck = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK);
-            controlLoopAck.setParticipantId(participantId);
-            controlLoopAck.setParticipantType(participantType);
-            controlLoopAck.setMessage("Control loop " + stateChangeMsg.getControlLoopId()
-                    + " does not use this participant " + participantId);
-            controlLoopAck.setResult(false);
-            controlLoopAck.setResponseTo(stateChangeMsg.getMessageId());
-            controlLoopAck.setControlLoopId(stateChangeMsg.getControlLoopId());
-            publisher.sendControlLoopAck(controlLoopAck);
-            LOGGER.debug("Control loop {} does not use this participant", stateChangeMsg.getControlLoopId());
-            return;
-        }
-
-        handleState(controlLoop, stateChangeMsg.getOrderedState(), stateChangeMsg.getStartPhase(),
-                clElementDefinitions);
-    }
-
-    /**
-     * Method to handle state changes.
-     *
-     * @param controlLoop participant response
-     * @param orderedState controlloop ordered state
-     * @param startPhaseMsg startPhase from message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    private void handleState(final ControlLoop controlLoop, ControlLoopOrderedState orderedState, Integer startPhaseMsg,
-            List<ControlLoopElementDefinition> clElementDefinitions) {
-        switch (orderedState) {
-            case UNINITIALISED:
-                handleUninitialisedState(controlLoop, orderedState, startPhaseMsg, clElementDefinitions);
-                break;
-            case PASSIVE:
-                handlePassiveState(controlLoop, orderedState, startPhaseMsg, clElementDefinitions);
-                break;
-            case RUNNING:
-                handleRunningState(controlLoop, orderedState, startPhaseMsg, clElementDefinitions);
-                break;
-            default:
-                LOGGER.debug("StateChange message has no state, state is null {}", controlLoop.getDefinition());
-                break;
-        }
-    }
-
-    /**
-     * Handle a control loop update message.
-     *
-     * @param updateMsg the update message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    public void handleControlLoopUpdate(ControlLoopUpdate updateMsg,
-            List<ControlLoopElementDefinition> clElementDefinitions) {
-
-        if (!updateMsg.appliesTo(participantType, participantId)) {
-            return;
-        }
-
-        if (0 == updateMsg.getStartPhase()) {
-            handleClUpdatePhase0(updateMsg, clElementDefinitions);
-        } else {
-            handleClUpdatePhaseN(updateMsg, clElementDefinitions);
-        }
-    }
-
-    private void handleClUpdatePhase0(ControlLoopUpdate updateMsg,
-            List<ControlLoopElementDefinition> clElementDefinitions) {
-        var controlLoop = controlLoopMap.get(updateMsg.getControlLoopId());
-
-        // TODO: Updates to existing ControlLoops are not supported yet (Addition/Removal of ControlLoop
-        // elements to existing ControlLoop has to be supported).
-        if (controlLoop != null) {
-            var controlLoopUpdateAck = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_UPDATE_ACK);
-            controlLoopUpdateAck.setParticipantId(participantId);
-            controlLoopUpdateAck.setParticipantType(participantType);
-
-            controlLoopUpdateAck.setMessage("Control loop " + updateMsg.getControlLoopId()
-                    + " already defined on participant " + participantId);
-            controlLoopUpdateAck.setResult(false);
-            controlLoopUpdateAck.setResponseTo(updateMsg.getMessageId());
-            controlLoopUpdateAck.setControlLoopId(updateMsg.getControlLoopId());
-            publisher.sendControlLoopAck(controlLoopUpdateAck);
-            return;
-        }
-
-        if (updateMsg.getParticipantUpdatesList().isEmpty()) {
-            LOGGER.warn("No ControlLoopElement updates in message {}", updateMsg.getControlLoopId());
-            return;
-        }
-
-        var clElements = storeElementsOnThisParticipant(updateMsg.getParticipantUpdatesList());
-
-        var clElementMap = prepareClElementMap(clElements);
-        controlLoop = new ControlLoop();
-        controlLoop.setDefinition(updateMsg.getControlLoopId());
-        controlLoop.setElements(clElementMap);
-        controlLoopMap.put(updateMsg.getControlLoopId(), controlLoop);
-
-        handleControlLoopElementUpdate(clElements, clElementDefinitions, updateMsg.getStartPhase(),
-                updateMsg.getControlLoopId());
-    }
-
-    private void handleClUpdatePhaseN(ControlLoopUpdate updateMsg,
-            List<ControlLoopElementDefinition> clElementDefinitions) {
-
-        var clElementList = updateMsg.getParticipantUpdatesList().stream()
-                .flatMap(participantUpdate -> participantUpdate.getControlLoopElementList().stream())
-                .filter(element -> participantType.equals(element.getParticipantType())).collect(Collectors.toList());
-
-        handleControlLoopElementUpdate(clElementList, clElementDefinitions, updateMsg.getStartPhase(),
-                updateMsg.getControlLoopId());
-    }
-
-    private void handleControlLoopElementUpdate(List<ControlLoopElement> clElements,
-            List<ControlLoopElementDefinition> clElementDefinitions, Integer startPhaseMsg,
-            ToscaConceptIdentifier controlLoopId) {
-        try {
-            for (var element : clElements) {
-                var clElementNodeTemplate = getClElementNodeTemplate(clElementDefinitions, element.getDefinition());
-                if (clElementNodeTemplate != null) {
-                    int startPhase = ParticipantUtils.findStartPhase(clElementNodeTemplate.getProperties());
-                    if (startPhaseMsg.equals(startPhase)) {
-                        for (var clElementListener : listeners) {
-                            clElementListener.controlLoopElementUpdate(controlLoopId, element, clElementNodeTemplate);
-                        }
-                    }
-                }
-            }
-        } catch (PfModelException e) {
-            LOGGER.debug("Control loop element update failed {}", controlLoopId);
-        }
-
-    }
-
-    private ToscaNodeTemplate getClElementNodeTemplate(List<ControlLoopElementDefinition> clElementDefinitions,
-            ToscaConceptIdentifier clElementDefId) {
-
-        for (var clElementDefinition : clElementDefinitions) {
-            if (clElementDefId.getName().contains(clElementDefinition.getClElementDefinitionId().getName())) {
-                return clElementDefinition.getControlLoopElementToscaNodeTemplate();
-            }
-        }
-        return null;
-    }
-
-    private List<ControlLoopElement> storeElementsOnThisParticipant(List<ParticipantUpdates> participantUpdates) {
-        var clElementList = participantUpdates.stream()
-                .flatMap(participantUpdate -> participantUpdate.getControlLoopElementList().stream())
-                .filter(element -> participantType.equals(element.getParticipantType())).collect(Collectors.toList());
-
-        for (var element : clElementList) {
-            elementsOnThisParticipant.put(element.getId(), element);
-        }
-        return clElementList;
-    }
-
-    private Map<UUID, ControlLoopElement> prepareClElementMap(List<ControlLoopElement> clElements) {
-        Map<UUID, ControlLoopElement> clElementMap = new LinkedHashMap<>();
-        for (var element : clElements) {
-            clElementMap.put(element.getId(), element);
-        }
-        return clElementMap;
-    }
-
-    /**
-     * Method to handle when the new state from participant is UNINITIALISED state.
-     *
-     * @param controlLoop participant response
-     * @param orderedState orderedState
-     * @param startPhaseMsg startPhase from message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    private void handleUninitialisedState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
-            Integer startPhaseMsg, List<ControlLoopElementDefinition> clElementDefinitions) {
-        handleStateChange(controlLoop, orderedState, startPhaseMsg, clElementDefinitions);
-        boolean isAllUninitialised = controlLoop.getElements().values().stream()
-                .filter(element -> !ControlLoopState.UNINITIALISED.equals(element.getState())).findAny().isEmpty();
-        if (isAllUninitialised) {
-            controlLoopMap.remove(controlLoop.getDefinition());
-            controlLoop.getElements().values().forEach(element -> elementsOnThisParticipant.remove(element.getId()));
-        }
-    }
-
-    /**
-     * Method to handle when the new state from participant is PASSIVE state.
-     *
-     * @param controlLoop participant response
-     * @param orderedState orderedState
-     * @param startPhaseMsg startPhase from message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    private void handlePassiveState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
-            Integer startPhaseMsg, List<ControlLoopElementDefinition> clElementDefinitions) {
-        handleStateChange(controlLoop, orderedState, startPhaseMsg, clElementDefinitions);
-    }
-
-    /**
-     * Method to handle when the new state from participant is RUNNING state.
-     *
-     * @param controlLoop participant response
-     * @param orderedState orderedState
-     * @param startPhaseMsg startPhase from message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    private void handleRunningState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
-            Integer startPhaseMsg, List<ControlLoopElementDefinition> clElementDefinitions) {
-        handleStateChange(controlLoop, orderedState, startPhaseMsg, clElementDefinitions);
-    }
-
-    /**
-     * Method to update the state of control loop elements.
-     *
-     * @param controlLoop participant status in memory
-     * @param orderedState orderedState the new ordered state the participant should have
-     * @param startPhaseMsg startPhase from message
-     * @param clElementDefinitions the list of ControlLoopElementDefinition
-     */
-    private void handleStateChange(ControlLoop controlLoop, final ControlLoopOrderedState orderedState,
-            Integer startPhaseMsg, List<ControlLoopElementDefinition> clElementDefinitions) {
-
-        if (orderedState.equals(controlLoop.getOrderedState())) {
-            var controlLoopAck = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK);
-            controlLoopAck.setParticipantId(participantId);
-            controlLoopAck.setParticipantType(participantType);
-            controlLoopAck.setMessage("Control loop is already in state " + orderedState);
-            controlLoopAck.setResult(false);
-            controlLoopAck.setControlLoopId(controlLoop.getDefinition());
-            publisher.sendControlLoopAck(controlLoopAck);
-            return;
-        }
-
-        controlLoop.getElements().values().stream().forEach(clElement -> controlLoopElementStateChange(controlLoop,
-                orderedState, clElement, startPhaseMsg, clElementDefinitions));
-    }
-
-    private void controlLoopElementStateChange(ControlLoop controlLoop, ControlLoopOrderedState orderedState,
-            ControlLoopElement clElement, Integer startPhaseMsg,
-            List<ControlLoopElementDefinition> clElementDefinitions) {
-        var clElementNodeTemplate = getClElementNodeTemplate(clElementDefinitions, clElement.getDefinition());
-        if (clElementNodeTemplate != null) {
-            int startPhase = ParticipantUtils.findStartPhase(clElementNodeTemplate.getProperties());
-            if (startPhaseMsg.equals(startPhase)) {
-                for (var clElementListener : listeners) {
-                    try {
-                        clElementListener.controlLoopElementStateChange(controlLoop.getDefinition(), clElement.getId(),
-                                clElement.getState(), orderedState);
-                    } catch (PfModelException e) {
-                        LOGGER.debug("Control loop element update failed {}", controlLoop.getDefinition());
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Get control loops as a {@link ConrolLoops} class.
-     *
-     * @return the control loops
-     */
-    public ControlLoops getControlLoops() {
-        var controlLoops = new ControlLoops();
-        controlLoops.setControlLoopList(new ArrayList<>(controlLoopMap.values()));
-        return controlLoops;
-    }
-
-    /**
-     * Get properties of a controlloopelement.
-     *
-     * @param id the control loop element id
-     * @return the instance properties
-     */
-    public Map<String, ToscaProperty> getClElementInstanceProperties(UUID id) {
-        Map<String, ToscaProperty> propertiesMap = new HashMap<>();
-        for (var controlLoop : controlLoopMap.values()) {
-            var element = controlLoop.getElements().get(id);
-            if (element != null) {
-                propertiesMap.putAll(element.getPropertiesMap());
-            }
-        }
-        return propertiesMap;
-    }
-}
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java
new file mode 100644
index 0000000..5d96756
--- /dev/null
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java
@@ -0,0 +1,103 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.api.impl;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.time.Instant;
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantHealthStatus;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantStatistics;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+
+class ParticipantIntermediaryApiImplTest {
+
+    private CommonTestData commonTestData = new CommonTestData();
+    private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
+    private static final String ID_VERSION = "1.0.1";
+
+    private static final String ID_NAME_E = "org.onap.domain.pmsh.PMSHAutomationCompositionDefinition";
+    private static final String ID_VERSION_E = "1.0.0";
+
+    private static final String ID_NAME_TYPE = "org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant";
+    private static final String ID_VERSION_TYPE = "2.3.4";
+
+    @Test
+    void mockParticipantIntermediaryApiImplTest() throws CoderException {
+        var uuid = UUID.randomUUID();
+        var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
+        var participantHandler = commonTestData.getParticipantHandlerAutomationCompositions();
+        var automationComposiitonHandler = commonTestData.setTestAutomationCompositionHandler(id, uuid);
+        var apiImpl = new ParticipantIntermediaryApiImpl(participantHandler, automationComposiitonHandler);
+        var acElementListener = Mockito.mock(AutomationCompositionElementListener.class);
+        apiImpl.registerAutomationCompositionElementListener(acElementListener);
+
+        assertNotNull(apiImpl.getAutomationCompositions(id.getName(), id.getVersion()));
+        assertThat(apiImpl.getAcElementDefinitionCommonProperties(id)).isEmpty();
+
+        var participantStatistics = new ParticipantStatistics();
+        participantStatistics.setParticipantId(id);
+        participantStatistics.setTimeStamp(Instant.ofEpochMilli(123456L));
+        participantStatistics.setState(ParticipantState.PASSIVE);
+        participantStatistics.setHealthStatus(ParticipantHealthStatus.HEALTHY);
+        apiImpl.updateParticipantStatistics(participantStatistics);
+
+        var participants = apiImpl.getParticipants(id.getName(), id.getVersion());
+        assertEquals(ParticipantState.UNKNOWN, participants.get(0).getParticipantState());
+
+        var participant = apiImpl.updateParticipantState(id, ParticipantState.TERMINATED);
+        assertEquals(ParticipantState.TERMINATED, participant.getParticipantState());
+
+        var elements = apiImpl.getAutomationCompositionElements(ID_NAME_E, ID_VERSION_E);
+        assertFalse(elements.containsKey(uuid));
+
+        var element = apiImpl.getAutomationCompositionElement(elements.keySet().iterator().next());
+        var idType = new ToscaConceptIdentifier(ID_NAME_TYPE, ID_VERSION_TYPE);
+        assertEquals(idType, element.getParticipantType());
+
+        var acElementStatistics = new AcElementStatistics();
+        var automationCompositionId = new ToscaConceptIdentifier("defName", "0.0.1");
+        acElementStatistics.setParticipantId(automationCompositionId);
+        acElementStatistics.setState(AutomationCompositionState.RUNNING);
+        acElementStatistics.setTimeStamp(Instant.now());
+
+        apiImpl.updateAutomationCompositionElementStatistics(uuid, acElementStatistics);
+        var acElement =
+            apiImpl.updateAutomationCompositionElementState(id, uuid, AutomationCompositionOrderedState.UNINITIALISED,
+                AutomationCompositionState.PASSIVE, ParticipantMessageType.AUTOMATION_COMPOSITION_STATECHANGE_ACK);
+        assertEquals(AutomationCompositionOrderedState.UNINITIALISED, acElement.getOrderedState());
+        assertEquals(uuid, acElement.getId());
+
+    }
+}
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantCommTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java
similarity index 64%
rename from participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantCommTest.java
rename to participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java
index a40a418..26dddc9 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantCommTest.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.comm;
+package org.onap.policy.clamp.acm.participant.intermediary.comm;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -28,13 +28,13 @@
 import java.util.List;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
-import org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.acm.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.common.acm.exception.AutomationCompositionRuntimeException;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegister;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatus;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.common.utils.coder.CoderException;
 
@@ -44,31 +44,28 @@
 
     @Test
     void participantReqTest() throws CoderException {
-        var participantHandler = commonTestData.getParticipantHandlerControlLoops();
+        var participantHandler = commonTestData.getParticipantHandlerAutomationCompositions();
 
         var participantRegisterAckListener = new ParticipantRegisterAckListener(participantHandler);
-        assertEquals(ParticipantMessageType.PARTICIPANT_REGISTER_ACK.name(),
-                participantRegisterAckListener.getType());
+        assertEquals(ParticipantMessageType.PARTICIPANT_REGISTER_ACK.name(), participantRegisterAckListener.getType());
 
         var participantStatusReqListener = new ParticipantStatusReqListener(participantHandler);
-        assertEquals(ParticipantMessageType.PARTICIPANT_STATUS_REQ.name(),
-                participantStatusReqListener.getType());
+        assertEquals(ParticipantMessageType.PARTICIPANT_STATUS_REQ.name(), participantStatusReqListener.getType());
 
         var participantDeregisterAckListener = new ParticipantDeregisterAckListener(participantHandler);
         assertEquals(ParticipantMessageType.PARTICIPANT_DEREGISTER_ACK.name(),
-                participantDeregisterAckListener.getType());
+            participantDeregisterAckListener.getType());
 
         var participantUpdateListener = new ParticipantUpdateListener(participantHandler);
-        assertEquals(ParticipantMessageType.PARTICIPANT_UPDATE.name(),
-                participantUpdateListener.getType());
+        assertEquals(ParticipantMessageType.PARTICIPANT_UPDATE.name(), participantUpdateListener.getType());
 
-        var controlLoopUpdateListener = new ControlLoopUpdateListener(participantHandler);
-        assertEquals(ParticipantMessageType.CONTROL_LOOP_UPDATE.name(),
-                controlLoopUpdateListener.getType());
+        var automationCompositionUpdateListener = new AutomationCompositionUpdateListener(participantHandler);
+        assertEquals(ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE.name(),
+            automationCompositionUpdateListener.getType());
 
-        var controlLoopStateChangeListener = new ControlLoopStateChangeListener(participantHandler);
-        assertEquals(ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE.name(),
-                controlLoopStateChangeListener.getType());
+        var automationCompositionStateChangeListener = new AutomationCompositionStateChangeListener(participantHandler);
+        assertEquals(ParticipantMessageType.AUTOMATION_COMPOSITION_STATE_CHANGE.name(),
+            automationCompositionStateChangeListener.getType());
     }
 
     @Test
@@ -76,26 +73,26 @@
         var participantMessagePublisher = new ParticipantMessagePublisher();
 
         var participantStatus = Mockito.mock(ParticipantStatus.class);
-        assertThrows(ControlLoopRuntimeException.class, () -> {
+        assertThrows(AutomationCompositionRuntimeException.class, () -> {
             participantMessagePublisher.sendParticipantStatus(participantStatus);
         });
-        assertThrows(ControlLoopRuntimeException.class, () -> {
+        assertThrows(AutomationCompositionRuntimeException.class, () -> {
             participantMessagePublisher.sendHeartbeat(participantStatus);
         });
 
         var participantRegister = Mockito.mock(ParticipantRegister.class);
-        assertThrows(ControlLoopRuntimeException.class, () -> {
+        assertThrows(AutomationCompositionRuntimeException.class, () -> {
             participantMessagePublisher.sendParticipantRegister(participantRegister);
         });
 
         var participantDeregister = Mockito.mock(ParticipantDeregister.class);
-        assertThrows(ControlLoopRuntimeException.class, () -> {
+        assertThrows(AutomationCompositionRuntimeException.class, () -> {
             participantMessagePublisher.sendParticipantDeregister(participantDeregister);
         });
 
-        var controlLoopAck = Mockito.mock(ControlLoopAck.class);
-        assertThrows(ControlLoopRuntimeException.class, () -> {
-            participantMessagePublisher.sendControlLoopAck(controlLoopAck);
+        var automationCompositionAck = Mockito.mock(AutomationCompositionAck.class);
+        assertThrows(AutomationCompositionRuntimeException.class, () -> {
+            participantMessagePublisher.sendAutomationCompositionAck(automationCompositionAck);
         });
 
         List<TopicSink> emptyList = Collections.emptyList();
@@ -108,7 +105,7 @@
 
     @Test
     void messageSenderTest() throws CoderException {
-        var participantHandler = commonTestData.getParticipantHandlerControlLoops();
+        var participantHandler = commonTestData.getParticipantHandlerAutomationCompositions();
         var participantParameters = CommonTestData.getParticipantParameters();
         var messageSender = new MessageSender(participantHandler, participantParameters);
         messageSender.run();
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/AutomationCompositionHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/AutomationCompositionHandlerTest.java
new file mode 100644
index 0000000..5585e51
--- /dev/null
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/AutomationCompositionHandlerTest.java
@@ -0,0 +1,227 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.mockito.Mockito.mock;
+
+import java.time.Instant;
+import java.util.List;
+import java.util.UUID;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
+import org.onap.policy.clamp.acm.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElementDefinition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantUpdates;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionStateChange;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionUpdate;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ExtendWith(SpringExtension.class)
+class AutomationCompositionHandlerTest {
+
+    private CommonTestData commonTestData = new CommonTestData();
+
+    @Test
+    void automationCompositionHandlerTest() {
+        var ach = commonTestData.getMockAutomationCompositionHandler();
+        assertNotNull(ach.getAutomationCompositions());
+
+        assertNotNull(ach.getAutomationCompositionMap());
+        assertNotNull(ach.getElementsOnThisParticipant());
+
+        var elementId1 = UUID.randomUUID();
+        var element = new AutomationCompositionElement();
+        element.setId(elementId1);
+        element.setDefinition(
+            new ToscaConceptIdentifier("org.onap.policy.acm.PolicyAutomationCompositionParticipant", "1.0.1"));
+
+        element.setOrderedState(AutomationCompositionOrderedState.PASSIVE);
+
+        AutomationCompositionElementListener listener = mock(AutomationCompositionElementListener.class);
+        ach.registerAutomationCompositionElementListener(listener);
+        assertThat(ach.getListeners()).contains(listener);
+    }
+
+    @Test
+    void updateNullAutomationCompositionHandlerTest() {
+        var id = UUID.randomUUID();
+
+        var ach = commonTestData.getMockAutomationCompositionHandler();
+        assertNull(ach.updateAutomationCompositionElementState(null, null,
+            AutomationCompositionOrderedState.UNINITIALISED, AutomationCompositionState.PASSIVE));
+
+        assertNull(ach.updateAutomationCompositionElementState(null, id,
+            AutomationCompositionOrderedState.UNINITIALISED, AutomationCompositionState.PASSIVE));
+
+        var acElementStatistics = new AcElementStatistics();
+        var automationCompositionId = new ToscaConceptIdentifier("defName", "0.0.1");
+        acElementStatistics.setParticipantId(automationCompositionId);
+        acElementStatistics.setState(AutomationCompositionState.RUNNING);
+        acElementStatistics.setTimeStamp(Instant.now());
+
+        ach.updateAutomationCompositionElementStatistics(id, acElementStatistics);
+        assertNull(ach.updateAutomationCompositionElementState(automationCompositionId, id,
+            AutomationCompositionOrderedState.UNINITIALISED, AutomationCompositionState.PASSIVE));
+    }
+
+    @Test
+    void updateAutomationCompositionHandlerTest() throws CoderException {
+        var uuid = UUID.randomUUID();
+        var id = CommonTestData.getParticipantId();
+
+        var ach = commonTestData.setTestAutomationCompositionHandler(id, uuid);
+        var key = ach.getElementsOnThisParticipant().keySet().iterator().next();
+        var value = ach.getElementsOnThisParticipant().get(key);
+        assertEquals(AutomationCompositionState.UNINITIALISED, value.getState());
+        ach.updateAutomationCompositionElementState(id, uuid, AutomationCompositionOrderedState.UNINITIALISED,
+            AutomationCompositionState.PASSIVE);
+        assertEquals(AutomationCompositionState.PASSIVE, value.getState());
+
+        ach.getAutomationCompositionMap().values().iterator().next().getElements().putIfAbsent(key, value);
+        ach.updateAutomationCompositionElementState(id, key, AutomationCompositionOrderedState.PASSIVE,
+            AutomationCompositionState.RUNNING);
+        assertEquals(AutomationCompositionState.RUNNING, value.getState());
+
+        var acElementStatistics = new AcElementStatistics();
+        acElementStatistics.setParticipantId(id);
+        acElementStatistics.setState(AutomationCompositionState.RUNNING);
+        acElementStatistics.setTimeStamp(Instant.now());
+
+        assertNotEquals(uuid, value.getAcElementStatistics().getId());
+        ach.updateAutomationCompositionElementStatistics(uuid, acElementStatistics);
+        assertEquals(uuid, value.getAcElementStatistics().getId());
+
+        ach.getElementsOnThisParticipant().remove(key, value);
+        ach.getAutomationCompositionMap().values().iterator().next().getElements().clear();
+        assertNull(ach.updateAutomationCompositionElementState(id, key, AutomationCompositionOrderedState.PASSIVE,
+            AutomationCompositionState.RUNNING));
+
+    }
+
+    @Test
+    void handleAutomationCompositionUpdateExceptionTest() throws CoderException {
+        var uuid = UUID.randomUUID();
+        var id = CommonTestData.getParticipantId();
+        var stateChange = getStateChange(id, uuid, AutomationCompositionOrderedState.RUNNING);
+        var ach = commonTestData.setTestAutomationCompositionHandler(id, uuid);
+        assertDoesNotThrow(
+            () -> ach.handleAutomationCompositionStateChange(mock(AutomationCompositionStateChange.class), List.of()));
+
+        ach.handleAutomationCompositionStateChange(stateChange, List.of());
+        var newid = new ToscaConceptIdentifier("id", "1.2.3");
+        stateChange.setAutomationCompositionId(newid);
+        stateChange.setParticipantId(newid);
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionStateChange(stateChange, List.of()));
+
+        var acd = new AutomationCompositionElementDefinition();
+        acd.setAcElementDefinitionId(id);
+        var updateMsg = new AutomationCompositionUpdate();
+        updateMsg.setAutomationCompositionId(id);
+        updateMsg.setMessageId(uuid);
+        updateMsg.setParticipantId(id);
+        updateMsg.setStartPhase(0);
+        var acElementDefinitions = List.of(acd);
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionUpdate(updateMsg, acElementDefinitions));
+        updateMsg.setStartPhase(1);
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionUpdate(updateMsg, acElementDefinitions));
+        assertThat(ach.getAcElementInstanceProperties(uuid)).isEmpty();
+
+        ach.getAutomationCompositionMap().clear();
+        updateMsg.setStartPhase(0);
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionUpdate(updateMsg, acElementDefinitions));
+
+        updateMsg.setAutomationCompositionId(new ToscaConceptIdentifier("new", "0.0.1"));
+        updateMsg.setParticipantUpdatesList(List.of(mock(ParticipantUpdates.class)));
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionUpdate(updateMsg, acElementDefinitions));
+
+        updateMsg.setStartPhase(1);
+        var participantUpdate = new ParticipantUpdates();
+        participantUpdate.setParticipantId(id);
+        var element = new AutomationCompositionElement();
+        element.setParticipantType(id);
+        element.setDefinition(id);
+        participantUpdate.setAutomationCompositionElementList(List.of(element));
+        updateMsg.setParticipantUpdatesList(List.of(participantUpdate));
+
+        var acd2 = new AutomationCompositionElementDefinition();
+        acd2.setAcElementDefinitionId(id);
+        acd2.setAutomationCompositionElementToscaNodeTemplate(mock(ToscaNodeTemplate.class));
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionUpdate(updateMsg, List.of(acd2)));
+
+    }
+
+    @Test
+    void automationCompositionStateChangeUninitialisedTest() throws CoderException {
+        var uuid = UUID.randomUUID();
+        var id = CommonTestData.getParticipantId();
+
+        var stateChangeUninitialised = getStateChange(id, uuid, AutomationCompositionOrderedState.UNINITIALISED);
+
+        var ach = commonTestData.setTestAutomationCompositionHandler(id, uuid);
+        ach.handleAutomationCompositionStateChange(stateChangeUninitialised, List.of());
+        var newid = new ToscaConceptIdentifier("id", "1.2.3");
+        stateChangeUninitialised.setAutomationCompositionId(newid);
+        stateChangeUninitialised.setParticipantId(newid);
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionStateChange(stateChangeUninitialised, List.of()));
+    }
+
+    @Test
+    void automationCompositionStateChangePassiveTest() throws CoderException {
+        var uuid = UUID.randomUUID();
+        var id = CommonTestData.getParticipantId();
+
+        var stateChangePassive = getStateChange(id, uuid, AutomationCompositionOrderedState.PASSIVE);
+
+        var ach = commonTestData.setTestAutomationCompositionHandler(id, uuid);
+        ach.handleAutomationCompositionStateChange(stateChangePassive, List.of());
+        var newid = new ToscaConceptIdentifier("id", "1.2.3");
+        stateChangePassive.setAutomationCompositionId(newid);
+        stateChangePassive.setParticipantId(newid);
+        assertDoesNotThrow(() -> ach.handleAutomationCompositionStateChange(stateChangePassive, List.of()));
+    }
+
+    private AutomationCompositionStateChange getStateChange(ToscaConceptIdentifier id, UUID uuid,
+        AutomationCompositionOrderedState state) {
+        var stateChange = new AutomationCompositionStateChange();
+        stateChange.setAutomationCompositionId(id);
+        stateChange.setParticipantId(id);
+        stateChange.setMessageId(uuid);
+        stateChange.setOrderedState(state);
+        stateChange.setCurrentState(AutomationCompositionState.UNINITIALISED);
+        stateChange.setTimestamp(Instant.ofEpochMilli(3000));
+        return stateChange;
+    }
+
+}
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/DummyParticipantParameters.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyParticipantParameters.java
similarity index 80%
rename from participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/DummyParticipantParameters.java
rename to participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyParticipantParameters.java
index d60bb71..b82fbed 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/DummyParticipantParameters.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/DummyParticipantParameters.java
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import javax.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
 
 @Getter
 @Setter
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivatorTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/IntermediaryActivatorTest.java
similarity index 90%
rename from participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivatorTest.java
rename to participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/IntermediaryActivatorTest.java
index 8c400c1..9ecf59b 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivatorTest.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/IntermediaryActivatorTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
@@ -34,10 +34,10 @@
 
 import java.util.List;
 import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatusReq;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantStatusReqListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters.CommonTestData;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantStatusReqListener;
+import org.onap.policy.clamp.acm.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantStatusReq;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardCoderObject;
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java
similarity index 81%
rename from participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java
rename to participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java
index d006975..8e22784 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandlerTest.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
+package org.onap.policy.clamp.acm.participant.intermediary.handler;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -32,16 +32,16 @@
 import java.util.List;
 import java.util.UUID;
 import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantHealthStatus;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantAckMessage;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessage;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
-import org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.acm.participant.intermediary.main.parameters.CommonTestData;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantHealthStatus;
+import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantAckMessage;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessage;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantMessageType;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantRegisterAck;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantUpdate;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 
@@ -60,17 +60,17 @@
         var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
         assertEquals(id, participantHandler.getParticipantId());
         assertEquals(id, participantHandler.getParticipantType());
-        assertThat(participantHandler.getClElementDefinitionCommonProperties(id)).isEmpty();
+        assertThat(participantHandler.getAcElementDefinitionCommonProperties(id)).isEmpty();
 
     }
 
     @Test
     void handleUpdateTest() {
         var parameters = CommonTestData.getParticipantParameters();
-        var controlLoopHander = commonTestData.getMockControlLoopHandler();
+        var automationCompositionHander = commonTestData.getMockAutomationCompositionHandler();
         var publisher = new ParticipantMessagePublisher();
         var emptyParticipantHandler =
-                new ParticipantHandler(parameters, publisher, controlLoopHander);
+                new ParticipantHandler(parameters, publisher, automationCompositionHander);
         var participantUpdateMsg = new ParticipantUpdate();
 
         assertThatThrownBy(() ->
@@ -80,7 +80,7 @@
         var participantHandler = commonTestData.getMockParticipantHandler();
 
         var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
-        participantUpdateMsg.setControlLoopId(id);
+        participantUpdateMsg.setAutomationCompositionId(id);
         participantUpdateMsg.setParticipantId(id);
         participantUpdateMsg.setParticipantType(id);
         participantUpdateMsg.setMessageId(UUID.randomUUID());
@@ -89,10 +89,10 @@
         var heartbeatF = participantHandler.makeHeartbeat(false);
         assertEquals(id, heartbeatF.getParticipantId());
         assertEquals(ParticipantState.UNKNOWN, heartbeatF.getParticipantStatistics().getState());
-        assertThat(heartbeatF.getControlLoopInfoList()).isEmpty();
+        assertThat(heartbeatF.getAutomationCompositionInfoList()).isEmpty();
 
         participantHandler.handleParticipantUpdate(participantUpdateMsg);
-        assertThat(participantHandler.getClElementDefinitionCommonProperties(id)).isEmpty();
+        assertThat(participantHandler.getAcElementDefinitionCommonProperties(id)).isEmpty();
 
         var heartbeatT = participantHandler.makeHeartbeat(true);
         assertEquals(id, heartbeatT.getParticipantId());
@@ -148,7 +148,7 @@
     void checkAppliesTo() {
         var participantHandler = commonTestData.getMockParticipantHandler();
         var participantAckMsg =
-                new ParticipantAckMessage(ParticipantMessageType.CONTROL_LOOP_UPDATE);
+                new ParticipantAckMessage(ParticipantMessageType.AUTOMATION_COMPOSITION_UPDATE);
         assertTrue(participantHandler.appliesTo(participantAckMsg));
 
         var participantMsg =
@@ -162,14 +162,14 @@
     }
 
     @Test
-    void getControlLoopInfoListTest() throws CoderException {
-        var participantHandler = commonTestData.getParticipantHandlerControlLoops();
+    void getAutomationCompositionInfoListTest() throws CoderException {
+        var participantHandler = commonTestData.getParticipantHandlerAutomationCompositions();
         var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
         participantHandler.sendHeartbeat();
         assertEquals(id, participantHandler.makeHeartbeat(false)
-                .getControlLoopInfoList()
+                .getAutomationCompositionInfoList()
                 .get(0)
-                .getControlLoopId());
+                .getAutomationCompositionId());
 
     }
 
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/main/parameters/CommonTestData.java
similarity index 60%
rename from participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java
rename to participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/main/parameters/CommonTestData.java
index 9bbf896..ad54d40 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/CommonTestData.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/main/parameters/CommonTestData.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters;
+package org.onap.policy.clamp.acm.participant.intermediary.main.parameters;
 
 import java.io.File;
 import java.time.Instant;
@@ -30,18 +30,18 @@
 import java.util.TreeMap;
 import java.util.UUID;
 import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ControlLoopHandler;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.DummyParticipantParameters;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.comm.ParticipantMessagePublisher;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.AutomationCompositionHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.DummyParticipantParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.models.acm.concepts.AcElementStatistics;
+import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionElement;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionState;
+import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
+import org.onap.policy.clamp.models.acm.messages.dmaap.participant.ParticipantDeregisterAck;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.common.endpoints.parameters.TopicParameters;
 import org.onap.policy.common.utils.coder.Coder;
@@ -53,7 +53,7 @@
  * Class to hold/create all parameters for test cases.
  */
 public class CommonTestData {
-    public static final String PARTICIPANT_GROUP_NAME = "ControlLoopParticipantGroup";
+    public static final String PARTICIPANT_GROUP_NAME = "AutomationCompositionParticipantGroup";
     public static final String DESCRIPTION = "Participant description";
     public static final long TIME_INTERVAL = 2000;
     public static final List<TopicParameters> TOPIC_PARAMS = Arrays.asList(getTopicParams());
@@ -68,7 +68,7 @@
     public ParticipantIntermediaryParameters getParticipantIntermediaryParameters() {
         try {
             return CODER.convert(getIntermediaryParametersMap(PARTICIPANT_GROUP_NAME),
-                    ParticipantIntermediaryParameters.class);
+                ParticipantIntermediaryParameters.class);
         } catch (final CoderException e) {
             throw new RuntimeException("cannot create ParticipantSimulatorParameters from map", e);
         }
@@ -81,8 +81,7 @@
      */
     public static DummyParticipantParameters getParticipantParameters() {
         try {
-            return CODER.convert(getParametersMap(PARTICIPANT_GROUP_NAME),
-                    DummyParticipantParameters.class);
+            return CODER.convert(getParametersMap(PARTICIPANT_GROUP_NAME), DummyParticipantParameters.class);
         } catch (final CoderException e) {
             throw new RuntimeException("cannot create ParticipantSimulatorParameters from map", e);
         }
@@ -113,7 +112,7 @@
         map.put("description", DESCRIPTION);
         map.put("participantType", getParticipantId());
         map.put("reportingTimeIntervalMs", TIME_INTERVAL);
-        map.put("clampControlLoopTopics", getTopicParametersMap(false));
+        map.put("clampAutomationCompositionTopics", getTopicParametersMap(false));
 
         return map;
     }
@@ -140,7 +139,7 @@
      */
     public static TopicParameters getTopicParams() {
         final var topicParams = new TopicParameters();
-        topicParams.setTopic("POLICY-CLRUNTIME-PARTICIPANT");
+        topicParams.setTopic("POLICY-ACRUNTIME-PARTICIPANT");
         topicParams.setTopicCommInfrastructure("dmaap");
         topicParams.setServers(Arrays.asList("localhost"));
         return topicParams;
@@ -169,14 +168,12 @@
     }
 
     /**
-     * Returns a mocked ControlLoopHandler for test cases.
+     * Returns a mocked AutomationCompositionHandler for test cases.
      *
-     * @return ControlLoopHandler
+     * @return AutomationCompositionHandler
      */
-    public ControlLoopHandler getMockControlLoopHandler() {
-        return new ControlLoopHandler(
-                getParticipantParameters(),
-                getParticipantMessagePublisher());
+    public AutomationCompositionHandler getMockAutomationCompositionHandler() {
+        return new AutomationCompositionHandler(getParticipantParameters(), getParticipantMessagePublisher());
     }
 
     /**
@@ -186,10 +183,10 @@
      */
     public ParticipantHandler getMockParticipantHandler() {
         var parameters = getParticipantParameters();
-        var controlLoopHandler = getMockControlLoopHandler();
+        var automationCompositionHandler = getMockAutomationCompositionHandler();
         var publisher = new ParticipantMessagePublisher();
         publisher.active(Collections.singletonList(Mockito.mock(TopicSink.class)));
-        var participantHandler = new ParticipantHandler(parameters, publisher, controlLoopHandler);
+        var participantHandler = new ParticipantHandler(parameters, publisher, automationCompositionHandler);
         return participantHandler;
     }
 
@@ -200,14 +197,16 @@
      *
      * @throws CoderException if there is an error with .json file.
      */
-    public ParticipantHandler getParticipantHandlerControlLoops() throws CoderException {
-        var controlLoopHandler = Mockito.mock(ControlLoopHandler.class);
-        Mockito.doReturn(getTestControlLoops()).when(controlLoopHandler).getControlLoops();
-        Mockito.doReturn(getTestControlLoopMap()).when(controlLoopHandler).getControlLoopMap();
+    public ParticipantHandler getParticipantHandlerAutomationCompositions() throws CoderException {
+        var automationCompositionHandler = Mockito.mock(AutomationCompositionHandler.class);
+        Mockito.doReturn(getTestAutomationCompositions()).when(automationCompositionHandler)
+            .getAutomationCompositions();
+        Mockito.doReturn(getTestAutomationCompositionMap()).when(automationCompositionHandler)
+            .getAutomationCompositionMap();
         var publisher = new ParticipantMessagePublisher();
         publisher.active(Collections.singletonList(Mockito.mock(TopicSink.class)));
         var parameters = getParticipantParameters();
-        var participantHandler = new ParticipantHandler(parameters, publisher, controlLoopHandler);
+        var participantHandler = new ParticipantHandler(parameters, publisher, automationCompositionHandler);
         participantHandler.sendParticipantRegister();
         participantHandler.handleParticipantStatusReq(null);
         participantHandler.sendParticipantDeregister();
@@ -218,31 +217,31 @@
     }
 
     /**
-     * Returns a Map of ToscaConceptIdentifier and ControlLoop for test cases.
+     * Returns a Map of ToscaConceptIdentifier and AutomationComposition for test cases.
      *
-     * @return controlLoopMap
+     * @return automationCompositionMap
      *
      * @throws CoderException if there is an error with .json file.
      */
-    public Map<ToscaConceptIdentifier, ControlLoop> getTestControlLoopMap() throws CoderException {
-        var controlLoops = getTestControlLoops();
-        var controlLoop = controlLoops.getControlLoopList().get(1);
+    public Map<ToscaConceptIdentifier, AutomationComposition> getTestAutomationCompositionMap() throws CoderException {
+        var automationCompositions = getTestAutomationCompositions();
+        var automationComposition = automationCompositions.getAutomationCompositionList().get(1);
         var id = getParticipantId();
-        Map<ToscaConceptIdentifier, ControlLoop> controlLoopMap = new LinkedHashMap<>();
-        controlLoopMap.put(id, controlLoop);
-        return controlLoopMap;
+        Map<ToscaConceptIdentifier, AutomationComposition> automationCompositionMap = new LinkedHashMap<>();
+        automationCompositionMap.put(id, automationComposition);
+        return automationCompositionMap;
     }
 
     /**
-     * Returns List of ControlLoop for test cases.
+     * Returns List of AutomationComposition for test cases.
      *
-     * @return ControlLoops
+     * @return AutomationCompositions
      *
      * @throws CoderException if there is an error with .json file.
      */
-    public ControlLoops getTestControlLoops() throws CoderException {
-        return new StandardCoder()
-                .decode(new File("src/test/resources/providers/TestControlLoops.json"), ControlLoops.class);
+    public AutomationCompositions getTestAutomationCompositions() throws CoderException {
+        return new StandardCoder().decode(new File("src/test/resources/providers/TestAutomationCompositions.json"),
+            AutomationCompositions.class);
     }
 
     /**
@@ -251,43 +250,45 @@
      * @param uuid UUID and id ToscaConceptIdentifier
      * @return a map suitable for elementsOnThisParticipant
      */
-    public Map<UUID, ControlLoopElement> setControlLoopElementTest(UUID uuid, ToscaConceptIdentifier id) {
-        var clElement = new ControlLoopElement();
-        clElement.setId(uuid);
-        clElement.setParticipantId(id);
-        clElement.setDefinition(id);
-        clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
+    public Map<UUID, AutomationCompositionElement> setAutomationCompositionElementTest(UUID uuid,
+        ToscaConceptIdentifier id) {
+        var acElement = new AutomationCompositionElement();
+        acElement.setId(uuid);
+        acElement.setParticipantId(id);
+        acElement.setDefinition(id);
+        acElement.setOrderedState(AutomationCompositionOrderedState.UNINITIALISED);
 
-        var clElementStatistics = new ClElementStatistics();
-        clElementStatistics.setParticipantId(id);
-        clElementStatistics.setControlLoopState(ControlLoopState.UNINITIALISED);
-        clElementStatistics.setTimeStamp(Instant.now());
+        var acElementStatistics = new AcElementStatistics();
+        acElementStatistics.setParticipantId(id);
+        acElementStatistics.setState(AutomationCompositionState.UNINITIALISED);
+        acElementStatistics.setTimeStamp(Instant.now());
 
-        clElement.setClElementStatistics(clElementStatistics);
+        acElement.setAcElementStatistics(acElementStatistics);
 
-        Map<UUID, ControlLoopElement> elementsOnThisParticipant = new LinkedHashMap<>();
-        elementsOnThisParticipant.put(uuid, clElement);
+        Map<UUID, AutomationCompositionElement> elementsOnThisParticipant = new LinkedHashMap<>();
+        elementsOnThisParticipant.put(uuid, acElement);
         return elementsOnThisParticipant;
     }
 
     /**
-     * Returns a ControlLoopHandler with elements on the id,uuid.
+     * Returns a AutomationCompositionHandler with elements on the id,uuid.
      *
      * @param id ToscaConceptIdentifier and uuid UUID
-     * @return a ControlLoopHander with elements
+     * @return a AutomationCompositionHander with elements
      */
-    public ControlLoopHandler setTestControlLoopHandler(ToscaConceptIdentifier id, UUID uuid) throws CoderException {
-        var clh = getMockControlLoopHandler();
+    public AutomationCompositionHandler setTestAutomationCompositionHandler(ToscaConceptIdentifier id, UUID uuid)
+        throws CoderException {
+        var ach = getMockAutomationCompositionHandler();
 
-        var key = getTestControlLoopMap().keySet().iterator().next();
-        var value = getTestControlLoopMap().get(key);
-        clh.getControlLoopMap().put(key, value);
+        var key = getTestAutomationCompositionMap().keySet().iterator().next();
+        var value = getTestAutomationCompositionMap().get(key);
+        ach.getAutomationCompositionMap().put(key, value);
 
-        var keyElem = setControlLoopElementTest(uuid, id).keySet().iterator().next();
-        var valueElem = setControlLoopElementTest(uuid, id).get(keyElem);
-        clh.getElementsOnThisParticipant().put(keyElem, valueElem);
+        var keyElem = setAutomationCompositionElementTest(uuid, id).keySet().iterator().next();
+        var valueElem = setAutomationCompositionElementTest(uuid, id).get(keyElem);
+        ach.getElementsOnThisParticipant().put(keyElem, valueElem);
 
-        return clh;
+        return ach;
     }
 
 }
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/TestParticipantIntermediaryParameters.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/main/parameters/TestParticipantIntermediaryParameters.java
similarity index 85%
rename from participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/TestParticipantIntermediaryParameters.java
rename to participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/main/parameters/TestParticipantIntermediaryParameters.java
index d554a55..cc2b110 100644
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/main/parameters/TestParticipantIntermediaryParameters.java
+++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/main/parameters/TestParticipantIntermediaryParameters.java
@@ -18,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters;
+package org.onap.policy.clamp.acm.participant.intermediary.main.parameters;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.validation.Validation;
 import javax.validation.ValidatorFactory;
 import org.junit.jupiter.api.Test;
-import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantIntermediaryParameters;
 
 /**
  * Class to perform unit test of {@link ParticipantParameterGroup}.
@@ -45,7 +45,7 @@
     void testParticipantIntermediaryParameterGroup_EmptyParameter() {
         final ParticipantIntermediaryParameters participantParameters =
                 commonTestData.getParticipantIntermediaryParameters();
-        participantParameters.setClampControlLoopTopics(null);
+        participantParameters.setClampAutomationCompositionTopics(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
@@ -53,7 +53,7 @@
     void testParticipantIntermediaryParameters_NullTopicSinks() {
         final ParticipantIntermediaryParameters participantParameters =
                 commonTestData.getParticipantIntermediaryParameters();
-        participantParameters.getClampControlLoopTopics().setTopicSinks(null);
+        participantParameters.getClampAutomationCompositionTopics().setTopicSinks(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 
@@ -61,7 +61,7 @@
     void testParticipantIntermediaryParameters_NullTopicSources() {
         final ParticipantIntermediaryParameters participantParameters =
                 commonTestData.getParticipantIntermediaryParameters();
-        participantParameters.getClampControlLoopTopics().setTopicSources(null);
+        participantParameters.getClampAutomationCompositionTopics().setTopicSources(null);
         assertThat(validatorFactory.getValidator().validate(participantParameters)).isNotEmpty();
     }
 }
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java
deleted file mode 100644
index b08e796..0000000
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/api/impl/ParticipantIntermediaryApiImplTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.api.impl;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.time.Instant;
-import java.util.UUID;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantHealthStatus;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters.CommonTestData;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-
-class ParticipantIntermediaryApiImplTest {
-
-    private CommonTestData commonTestData = new CommonTestData();
-    private static final String ID_NAME = "org.onap.PM_CDS_Blueprint";
-    private static final String ID_VERSION = "1.0.1";
-
-    private static final String ID_NAME_E = "org.onap.domain.pmsh.PMSHControlLoopDefinition";
-    private static final String ID_VERSION_E = "1.0.0";
-
-    private static final String ID_NAME_TYPE = "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant";
-    private static final String ID_VERSION_TYPE = "2.3.4";
-
-    @Test
-    void mockParticipantIntermediaryApiImplTest() throws CoderException {
-        var uuid = UUID.randomUUID();
-        var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
-        var participantHandler = commonTestData.getParticipantHandlerControlLoops();
-        var controlLoopHandler = commonTestData.setTestControlLoopHandler(id, uuid);
-        var apiImpl = new ParticipantIntermediaryApiImpl(participantHandler, controlLoopHandler);
-        var clElementListener = Mockito.mock(ControlLoopElementListener.class);
-        apiImpl.registerControlLoopElementListener(clElementListener);
-
-        assertNotNull(apiImpl.getControlLoops(id.getName(), id.getVersion()));
-        assertThat(apiImpl.getClElementDefinitionCommonProperties(id)).isEmpty();
-
-        var participantStatistics = new ParticipantStatistics();
-        participantStatistics.setParticipantId(id);
-        participantStatistics.setTimeStamp(Instant.ofEpochMilli(123456L));
-        participantStatistics.setState(ParticipantState.PASSIVE);
-        participantStatistics.setHealthStatus(ParticipantHealthStatus.HEALTHY);
-        apiImpl.updateParticipantStatistics(participantStatistics);
-
-        var participants = apiImpl.getParticipants(id.getName(), id.getVersion());
-        assertEquals(ParticipantState.UNKNOWN, participants.get(0).getParticipantState());
-
-        var participant = apiImpl.updateParticipantState(id, ParticipantState.TERMINATED);
-        assertEquals(ParticipantState.TERMINATED, participant.getParticipantState());
-
-        var elements = apiImpl.getControlLoopElements(ID_NAME_E, ID_VERSION_E);
-        assertFalse(elements.containsKey(uuid));
-
-        var element = apiImpl.getControlLoopElement(elements.keySet().iterator().next());
-        var idType = new ToscaConceptIdentifier(ID_NAME_TYPE, ID_VERSION_TYPE);
-        assertEquals(idType, element.getParticipantType());
-
-        var clElementStatistics = new ClElementStatistics();
-        var controlLoopId = new ToscaConceptIdentifier("defName", "0.0.1");
-        clElementStatistics.setParticipantId(controlLoopId);
-        clElementStatistics.setControlLoopState(ControlLoopState.RUNNING);
-        clElementStatistics.setTimeStamp(Instant.now());
-
-        apiImpl.updateControlLoopElementStatistics(uuid, clElementStatistics);
-        var clElement = apiImpl.updateControlLoopElementState(id, uuid, ControlLoopOrderedState.UNINITIALISED,
-                ControlLoopState.PASSIVE, ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK);
-        assertEquals(ControlLoopOrderedState.UNINITIALISED, clElement.getOrderedState());
-        assertEquals(uuid, clElement.getId());
-
-    }
-}
diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandlerTest.java
deleted file mode 100644
index 43b43e3..0000000
--- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandlerTest.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.intermediary.handler;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.mockito.Mockito.mock;
-
-import java.time.Instant;
-import java.util.List;
-import java.util.UUID;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElementDefinition;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.main.parameters.CommonTestData;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-@ExtendWith(SpringExtension.class)
-class ControlLoopHandlerTest {
-
-    private CommonTestData commonTestData = new CommonTestData();
-
-    @Test
-    void controlLoopHandlerTest() {
-        var clh = commonTestData.getMockControlLoopHandler();
-        assertNotNull(clh.getControlLoops());
-
-        assertNotNull(clh.getControlLoopMap());
-        assertNotNull(clh.getElementsOnThisParticipant());
-
-        var elementId1 = UUID.randomUUID();
-        var element = new ControlLoopElement();
-        element.setId(elementId1);
-        element.setDefinition(new ToscaConceptIdentifier(
-                "org.onap.policy.controlloop.PolicyControlLoopParticipant", "1.0.1"));
-
-        element.setOrderedState(ControlLoopOrderedState.PASSIVE);
-
-        ControlLoopElementListener listener = mock(ControlLoopElementListener.class);
-        clh.registerControlLoopElementListener(listener);
-        assertThat(clh.getListeners()).contains(listener);
-    }
-
-    @Test
-    void updateNullControlLoopHandlerTest() {
-        var id = UUID.randomUUID();
-
-        var clh = commonTestData.getMockControlLoopHandler();
-        assertNull(clh.updateControlLoopElementState(null, null, ControlLoopOrderedState.UNINITIALISED,
-                ControlLoopState.PASSIVE));
-
-        assertNull(clh.updateControlLoopElementState(null, id, ControlLoopOrderedState.UNINITIALISED,
-                ControlLoopState.PASSIVE));
-
-        var clElementStatistics = new ClElementStatistics();
-        var controlLoopId = new ToscaConceptIdentifier("defName", "0.0.1");
-        clElementStatistics.setParticipantId(controlLoopId);
-        clElementStatistics.setControlLoopState(ControlLoopState.RUNNING);
-        clElementStatistics.setTimeStamp(Instant.now());
-
-        clh.updateControlLoopElementStatistics(id, clElementStatistics);
-        assertNull(clh.updateControlLoopElementState(controlLoopId, id, ControlLoopOrderedState.UNINITIALISED,
-                ControlLoopState.PASSIVE));
-    }
-
-    @Test
-    void updateControlLoopHandlerTest() throws CoderException {
-        var uuid = UUID.randomUUID();
-        var id = CommonTestData.getParticipantId();
-
-        var clh = commonTestData.setTestControlLoopHandler(id, uuid);
-        var key = clh.getElementsOnThisParticipant().keySet().iterator().next();
-        var value = clh.getElementsOnThisParticipant().get(key);
-        assertEquals(ControlLoopState.UNINITIALISED, value.getState());
-        clh.updateControlLoopElementState(id, uuid, ControlLoopOrderedState.UNINITIALISED,
-                ControlLoopState.PASSIVE);
-        assertEquals(ControlLoopState.PASSIVE, value.getState());
-
-        clh.getControlLoopMap().values().iterator().next().getElements().putIfAbsent(key, value);
-        clh.updateControlLoopElementState(id, key, ControlLoopOrderedState.PASSIVE,
-                ControlLoopState.RUNNING);
-        assertEquals(ControlLoopState.RUNNING, value.getState());
-
-        var clElementStatistics = new ClElementStatistics();
-        clElementStatistics.setParticipantId(id);
-        clElementStatistics.setControlLoopState(ControlLoopState.RUNNING);
-        clElementStatistics.setTimeStamp(Instant.now());
-
-        assertNotEquals(uuid, value.getClElementStatistics().getId());
-        clh.updateControlLoopElementStatistics(uuid, clElementStatistics);
-        assertEquals(uuid, value.getClElementStatistics().getId());
-
-        clh.getElementsOnThisParticipant().remove(key, value);
-        clh.getControlLoopMap().values().iterator().next().getElements().clear();
-        assertNull(clh.updateControlLoopElementState(id, key, ControlLoopOrderedState.PASSIVE,
-                ControlLoopState.RUNNING));
-
-    }
-
-    @Test
-    void handleControlLoopUpdateExceptionTest() throws CoderException {
-        var uuid = UUID.randomUUID();
-        var id = CommonTestData.getParticipantId();
-        var stateChange = getStateChange(id, uuid, ControlLoopOrderedState.RUNNING);
-        var clh = commonTestData.setTestControlLoopHandler(id, uuid);
-        assertDoesNotThrow(() -> clh.handleControlLoopStateChange(mock(ControlLoopStateChange.class), List.of()));
-
-        clh.handleControlLoopStateChange(stateChange, List.of());
-        var newid = new ToscaConceptIdentifier("id", "1.2.3");
-        stateChange.setControlLoopId(newid);
-        stateChange.setParticipantId(newid);
-        assertDoesNotThrow(() -> clh.handleControlLoopStateChange(stateChange, List.of()));
-
-        var cld = new ControlLoopElementDefinition();
-        cld.setClElementDefinitionId(id);
-        var updateMsg = new ControlLoopUpdate();
-        updateMsg.setControlLoopId(id);
-        updateMsg.setMessageId(uuid);
-        updateMsg.setParticipantId(id);
-        updateMsg.setStartPhase(0);
-        var clElementDefinitions = List.of(cld);
-        assertDoesNotThrow(() -> clh.handleControlLoopUpdate(updateMsg, clElementDefinitions));
-        updateMsg.setStartPhase(1);
-        assertDoesNotThrow(() -> clh.handleControlLoopUpdate(updateMsg, clElementDefinitions));
-        assertThat(clh.getClElementInstanceProperties(uuid)).isEmpty();
-
-        clh.getControlLoopMap().clear();
-        updateMsg.setStartPhase(0);
-        assertDoesNotThrow(() -> clh.handleControlLoopUpdate(updateMsg, clElementDefinitions));
-
-        updateMsg.setControlLoopId(new ToscaConceptIdentifier("new", "0.0.1"));
-        updateMsg.setParticipantUpdatesList(List.of(mock(ParticipantUpdates.class)));
-        assertDoesNotThrow(() -> clh.handleControlLoopUpdate(updateMsg, clElementDefinitions));
-
-        updateMsg.setStartPhase(1);
-        var participantUpdate = new ParticipantUpdates();
-        participantUpdate.setParticipantId(id);
-        var element = new ControlLoopElement();
-        element.setParticipantType(id);
-        element.setDefinition(id);
-        participantUpdate.setControlLoopElementList(List.of(element));
-        updateMsg.setParticipantUpdatesList(List.of(participantUpdate));
-
-        var cld2 = new ControlLoopElementDefinition();
-        cld2.setClElementDefinitionId(id);
-        cld2.setControlLoopElementToscaNodeTemplate(mock(ToscaNodeTemplate.class));
-        assertDoesNotThrow(() -> clh.handleControlLoopUpdate(updateMsg, List.of(cld2)));
-
-    }
-
-    @Test
-    void controlLoopStateChangeUninitialisedTest() throws CoderException {
-        var uuid = UUID.randomUUID();
-        var id = CommonTestData.getParticipantId();
-
-        var stateChangeUninitialised = getStateChange(id, uuid, ControlLoopOrderedState.UNINITIALISED);
-
-        var clh = commonTestData.setTestControlLoopHandler(id, uuid);
-        clh.handleControlLoopStateChange(stateChangeUninitialised, List.of());
-        var newid = new ToscaConceptIdentifier("id", "1.2.3");
-        stateChangeUninitialised.setControlLoopId(newid);
-        stateChangeUninitialised.setParticipantId(newid);
-        assertDoesNotThrow(() -> clh.handleControlLoopStateChange(stateChangeUninitialised, List.of()));
-    }
-
-    @Test
-    void controlLoopStateChangePassiveTest() throws CoderException {
-        var uuid = UUID.randomUUID();
-        var id = CommonTestData.getParticipantId();
-
-        var stateChangePassive = getStateChange(id, uuid, ControlLoopOrderedState.PASSIVE);
-
-        var clh = commonTestData.setTestControlLoopHandler(id, uuid);
-        clh.handleControlLoopStateChange(stateChangePassive, List.of());
-        var newid = new ToscaConceptIdentifier("id", "1.2.3");
-        stateChangePassive.setControlLoopId(newid);
-        stateChangePassive.setParticipantId(newid);
-        assertDoesNotThrow(() -> clh.handleControlLoopStateChange(stateChangePassive, List.of()));
-    }
-
-
-    private ControlLoopStateChange getStateChange(ToscaConceptIdentifier id, UUID uuid, ControlLoopOrderedState state) {
-        var stateChange = new ControlLoopStateChange();
-        stateChange.setControlLoopId(id);
-        stateChange.setParticipantId(id);
-        stateChange.setMessageId(uuid);
-        stateChange.setOrderedState(state);
-        stateChange.setCurrentState(ControlLoopState.UNINITIALISED);
-        stateChange.setTimestamp(Instant.ofEpochMilli(3000));
-        return stateChange;
-    }
-
-}
diff --git a/participant/participant-intermediary/src/test/resources/providers/TestControlLoops.json b/participant/participant-intermediary/src/test/resources/providers/TestAutomationCompositions.json
similarity index 64%
rename from participant/participant-intermediary/src/test/resources/providers/TestControlLoops.json
rename to participant/participant-intermediary/src/test/resources/providers/TestAutomationCompositions.json
index fedda96..4e0f089 100644
--- a/participant/participant-intermediary/src/test/resources/providers/TestControlLoops.json
+++ b/participant/participant-intermediary/src/test/resources/providers/TestAutomationCompositions.json
@@ -1,8 +1,8 @@
 {
-    "controlLoopList": [
+    "automationCompositionList": [
         {
             "definition": {
-                "name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
+                "name": "org.onap.domain.pmsh.PMSHAutomationCompositionDefinition",
                 "version": "1.0.0"
             },
             "state": "UNINITIALISED",
@@ -15,63 +15,63 @@
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
+                        "name": "org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant",
                         "version": "2.3.4"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "DCAE Control Loop Element for the PMSH instance 0 control loop"
+                    "description": "DCAE Automation Composition Element for the PMSH instance 0 automation composition"
                 },
                 "709c62b3-8918-41b9-a747-e21eb79c6c21": {
                     "id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
                     "definition": {
-                        "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
+                        "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                        "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant",
                         "version": "2.3.1"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop"
+                    "description": "Monitoring Policy Automation Composition Element for the PMSH instance 0 automation composition"
                 },
                 "709c62b3-8918-41b9-a747-e21eb79c6c22": {
                     "id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
                     "definition": {
-                        "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
+                        "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                        "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant",
                         "version": "2.3.1"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop"
+                    "description": "Operational Policy Automation Composition Element for the PMSH instance 0 automation composition"
                 },
                 "709c62b3-8918-41b9-a747-e21eb79c6c23": {
                     "id": "709c62b3-8918-41b9-a747-d21eb79c6c23",
                     "definition": {
-                        "name": "org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement",
+                        "name": "org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement",
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant",
+                        "name": "org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant",
                         "version": "2.2.1"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "CDS Control Loop Element for the PMSH instance 0 control loop"
+                    "description": "CDS Automation Composition Element for the PMSH instance 0 automation composition"
                 }
             },
             "name": "PMSHInstance0",
             "version": "1.0.1",
-            "description": "PMSH control loop instance 0"
+            "description": "PMSH automation composition instance 0"
         },
         {
             "definition": {
-                "name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
+                "name": "org.onap.domain.pmsh.PMSHAutomationCompositionDefinition",
                 "version": "1.0.0"
             },
             "state": "UNINITIALISED",
@@ -84,59 +84,59 @@
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
+                        "name": "org.onap.dcae.acm.DCAEMicroserviceAutomationCompositionParticipant",
                         "version": "2.3.4"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "DCAE Control Loop Element for the PMSH instance 1 control loop"
+                    "description": "DCAE Automation Composition Element for the PMSH instance 1 automation composition"
                 },
                 "709c62b3-8918-41b9-a747-e21eb79c6c25": {
                     "id": "709c62b3-8918-41b9-a747-e21eb79c6c25",
                     "definition": {
-                        "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
+                        "name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyAutomationCompositionElement",
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                        "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant",
                         "version": "2.3.1"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "Monitoring Policy Control Loop Element for the PMSH instance 1 control loop"
+                    "description": "Monitoring Policy Automation Composition Element for the PMSH instance 1 automation composition"
                 },
                 "709c62b3-8918-41b9-a747-e21eb79c6c26": {
                     "id": "709c62b3-8918-41b9-a747-e21eb79c6c26",
                     "definition": {
-                        "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
+                        "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement",
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                        "name": "org.onap.policy.acm.PolicyAutomationCompositionParticipant",
                         "version": "2.3.1"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "Operational Policy Control Loop Element for the PMSH instance 1 control loop"
+                    "description": "Operational Policy Automation Composition Element for the PMSH instance 1 automation composition"
                 },
                 "709c62b3-8918-41b9-a747-e21eb79c6c27": {
                     "id": "709c62b3-8918-41b9-a747-e21eb79c6c27",
                     "definition": {
-                        "name": "org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement",
+                        "name": "org.onap.domain.pmsh.PMSH_CDS_AutomationCompositionElement",
                         "version": "1.2.3"
                     },
                     "participantType": {
-                        "name": "org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant",
+                        "name": "org.onap.ccsdk.cds.acm.CdsAutomationCompositionParticipant",
                         "version": "2.2.1"
                     },
                     "state": "UNINITIALISED",
                     "orderedState": "UNINITIALISED",
-                    "description": "CDS Control Loop Element for the PMSH instance 1 control loop"
+                    "description": "CDS Automation Composition Element for the PMSH instance 1 automation composition"
                 }
             },
             "name": "PMSHInstance1",
             "version": "1.0.1",
-            "description": "PMSH control loop instance 1"
+            "description": "PMSH automation composition instance 1"
         }
     ]
 }