import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
-
 import org.apache.commons.lang3.tuple.Pair;
 import org.onap.policy.common.utils.services.Registry;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.pdp.concepts.Pdp;
 import org.onap.policy.models.pdp.concepts.PdpGroup;
+import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
 import org.onap.policy.models.pdp.concepts.PdpStateChange;
 import org.onap.policy.models.pdp.concepts.PdpStatistics;
 import org.onap.policy.models.pdp.concepts.PdpStatus;
 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
 import org.onap.policy.models.pdp.concepts.PdpUpdate;
-import org.onap.policy.models.pdp.concepts.ToscaPolicyIdentifier;
-import org.onap.policy.models.pdp.concepts.ToscaPolicyTypeIdentifier;
 import org.onap.policy.models.pdp.enums.PdpState;
 import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
 import org.onap.policy.pap.main.PapConstants;
 import org.onap.policy.pap.main.PolicyModelsProviderFactoryWrapper;
 import org.onap.policy.pap.main.PolicyPapException;
         boolean pdpGroupFound = false;
         Optional<PdpSubGroup> subGroup = null;
         final List<Pair<String, String>> supportedPolicyTypesPair = createSupportedPolictTypesPair(message);
+        final PdpGroupFilter filter = PdpGroupFilter.builder().pdpType(message.getPdpType()).build();
+        // TODO setSupportedTypes(supportedPolicyTypesPair)
         final List<PdpGroup> pdpGroups =
-                databaseProvider.getFilteredPdpGroups(message.getPdpType(), supportedPolicyTypesPair);
+                databaseProvider.getFilteredPdpGroups(filter);
         for (final PdpGroup pdpGroup : pdpGroups) {
             subGroup = findPdpSubGroup(message, pdpGroup);
             if (subGroup.isPresent()) {
                 if (!findPdpInstance(message, subGroup.get()).isPresent()) {
                     updatePdpSubGroup(pdpGroup, subGroup.get(), message, databaseProvider);
                 }
-                sendPdpMessage(pdpGroup.getName(), subGroup.get(), message.getInstance(), null, databaseProvider);
+                sendPdpMessage(pdpGroup.getName(), subGroup.get(), message.getName(), null, databaseProvider);
                 pdpGroupFound = true;
                 break;
             }
             final PolicyModelsProvider databaseProvider) throws PfModelException {
 
         final Pdp pdpInstance = new Pdp();
-        pdpInstance.setInstanceId(message.getInstance());
+        pdpInstance.setInstanceId(message.getName());
         pdpInstance.setPdpState(message.getState());
         pdpInstance.setHealthy(message.getHealthy());
         pdpInstance.setMessage(message.getDescription());
         Optional<PdpSubGroup> pdpSubgroup = null;
         Optional<Pdp> pdpInstance = null;
 
-        final List<PdpGroup> pdpGroups = databaseProvider.getLatestPdpGroups(message.getPdpGroup());
+        final PdpGroupFilter filter = PdpGroupFilter.builder().name(message.getPdpGroup()).build();
+        // TODO setLatestVersion()
+        final List<PdpGroup> pdpGroups = databaseProvider.getFilteredPdpGroups(filter);
         if (!pdpGroups.isEmpty()) {
             final PdpGroup pdpGroup = pdpGroups.get(0);
             pdpSubgroup = findPdpSubGroup(message, pdpGroup);
     private Optional<Pdp> findPdpInstance(final PdpStatus message, final PdpSubGroup subGroup) {
         Pdp pdpInstance = null;
         for (final Pdp pdpInstanceDetails : subGroup.getPdpInstances()) {
-            if (message.getInstance().equals(pdpInstanceDetails.getInstanceId())) {
+            if (pdpInstanceDetails.getInstanceId().equals(message.getName())) {
                 pdpInstance = pdpInstanceDetails;
                 break;
             }
     private void updatePdpStatistics(final PdpStatus message, final PdpSubGroup pdpSubgroup, final Pdp pdpInstance,
             final PdpGroup pdpGroup, final PolicyModelsProvider databaseProvider) throws PfModelException {
         final PdpStatistics pdpStatistics = new PdpStatistics();
-        pdpStatistics.setPdpInstanceId(message.getInstance());
+        pdpStatistics.setPdpInstanceId(message.getName());
         pdpStatistics.setPolicyDeployCount(message.getStatistics().getPolicyDeployCount());
         pdpStatistics.setPolicyDeploySuccessCount(message.getStatistics().getPolicyDeploySuccessCount());
         pdpStatistics.setPolicyDeployFailCount(message.getStatistics().getPolicyDeployFailCount());
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-
+import java.util.stream.Collectors;
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.policy.models.pdp.concepts.PdpStatus;
 import org.onap.policy.models.pdp.concepts.PdpUpdate;
-import org.onap.policy.models.pdp.concepts.ToscaPolicyIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier;
 import org.onap.policy.pap.main.comm.TimerManager;
 import org.onap.policy.pap.main.parameters.PdpModifyRequestMapParams;
 import org.onap.policy.pap.main.parameters.PdpParameters;
     @Test
     public void testUpdateDataCheckResponse_MismatchedPolicies() {
         ArrayList<ToscaPolicyIdentifier> policies =
-                new ArrayList<>(convertToscaPolicyToToscaPolicyIndentifier(update.getPolicies()));
+                        new ArrayList<>(convertToscaPolicyToToscaPolicyIndentifier(update.getPolicies()));
         policies.set(0, new ToscaPolicyIdentifier(DIFFERENT, "10.0.0"));
 
         response.setPolicies(policies);
             // do nothing
         }
     }
-    
+
     /**
      * Converts a ToscaPolicy list to ToscaPolicyIdentifier list.
      *
      * @return the ToscaPolicyIdentifier list
      */
     private List<ToscaPolicyIdentifier> convertToscaPolicyToToscaPolicyIndentifier(List<ToscaPolicy> toscaPolicies) {
-        final List<ToscaPolicyIdentifier> toscaPolicyIdentifiers = new ArrayList<>();
-        for (final ToscaPolicy toscaPolicy : toscaPolicies) {
-            toscaPolicyIdentifiers.add(new ToscaPolicyIdentifier(toscaPolicy.getName(), toscaPolicy.getVersion()));
-        }
-        return toscaPolicyIdentifiers;
+        return toscaPolicies.stream().map(policy -> new ToscaPolicyIdentifier(policy.getName(), policy.getVersion()))
+                        .collect(Collectors.toList());
     }
 }