diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/ImportDiff.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/ImportDiff.java
index 05d8e90..4f7dc72 100644
--- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/ImportDiff.java
+++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/ImportDiff.java
@@ -44,6 +44,12 @@
                 .filter(ir -> !possible.contains(ir.getImportedEndpoint()));
     }
     
+    public Stream<EndpointDescription> getAdded() {
+        Set<EndpointDescription> importedEndpoints = importedEndpoints();
+        return possible.stream()
+                .filter(not(importedEndpoints::contains));
+    }
+    
     private Set<EndpointDescription> importedEndpoints() {
         return imported.stream()
             .map(ImportRegistration::getImportReference).filter(Objects::nonNull)
@@ -51,13 +57,7 @@
             .collect(Collectors.toSet());
     }
 
-    public Stream<EndpointDescription> getAdded() {
-        Set<EndpointDescription> importedEndpoints = importedEndpoints();
-        return possible.stream()
-                .filter(not(importedEndpoints::contains));
-    }
-    
-    public static <T> Predicate<T> not(Predicate<T> t) {
+    private static <T> Predicate<T> not(Predicate<T> t) {
         return t.negate();
     }
 }
