diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceFactory.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java
similarity index 98%
rename from dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceFactory.java
rename to dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java
index f23adab..b0d179e 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceFactory.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/FactorySet.java
@@ -42,7 +42,7 @@
  * Service instance.
  */
 @SuppressWarnings( { "unchecked" })
-public class ServiceFactory extends AbstractSet<Dictionary>
+public class FactorySet extends AbstractSet<Dictionary>
 {
     /**
      * The actual Service instance that is allocated for each dictionaries added in this Set.
@@ -152,7 +152,7 @@
      * @param provide The Services provided by this Service
      * @param factoryConfigure The configure callback invoked in order to pass configurations added in this Set.
      */
-    public ServiceFactory(Bundle b, MetaData srvMeta, List<MetaData> depsMeta)
+    public FactorySet(Bundle b, MetaData srvMeta, List<MetaData> depsMeta)
     {
         m_serviceProperties = srvMeta.getDictionary(Params.properties, null);
         m_provide = srvMeta.getStrings(Params.provide, null);
@@ -299,7 +299,7 @@
     @Override
     public String toString()
     {
-        return ServiceFactory.class.getName() + "(" + m_services.size() + " active instances)";
+        return FactorySet.class.getName() + "(" + m_services.size() + " active instances)";
     }
 
     /**
diff --git a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
index 51f3960..bd0a990 100644
--- a/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
+++ b/dependencymanager/runtime/src/main/java/org/apache/felix/dm/runtime/ServiceBuilder.java
@@ -82,8 +82,8 @@
             // We don't instantiate the service, but instead we provide a Set in the registry.
             // This Set will act as a factory and another component may registers some
             // service configurations into it in order to fire some service instantiations.
-            ServiceFactory serviceFactory =  new ServiceFactory(b, srvMeta, depsMeta);
-            service.setImplementation(serviceFactory);
+            FactorySet factorySet =  new FactorySet(b, srvMeta, depsMeta);
+            service.setImplementation(factorySet);
             service.setCallbacks(null, "start", "stop", null);
             Hashtable<String, String> props = new Hashtable<String, String>();
             props.put(DM_FACTORY_NAME, factory);
