match order
diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/OSGi.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/OSGi.java
index d13185d..b935efa 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/OSGi.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/OSGi.java
@@ -534,19 +534,20 @@
 	static <T> OSGi<CachingServiceReference<T>> serviceReferences(
 		Class<T> clazz) {
 
-		return new ServiceReferenceOSGi<>(null, clazz);
+		return serviceReferences(clazz, (String)null);
 	}
 
 	static OSGi<CachingServiceReference<Object>> serviceReferences(
 		String filterString) {
 
-		return new ServiceReferenceOSGi<>(filterString, null);
+		return serviceReferences(null, filterString);
 	}
 
 	static <T> OSGi<CachingServiceReference<T>> serviceReferences(
 		Class<T> clazz, String filterString) {
 
-		return new ServiceReferenceOSGi<>(filterString, clazz);
+		return serviceReferences(
+			clazz, filterString, CachingServiceReference::isDirty);
 	}
 
 	static <T> OSGi<CachingServiceReference<T>> serviceReferences(
@@ -554,7 +555,7 @@
 		Refresher<? super CachingServiceReference<T>> onModified) {
 
 		return refreshWhen(
-			serviceReferences(clazz, filterString),
+			new ServiceReferenceOSGi<>(clazz, filterString),
 			onModified::test);
 
 	}
diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ServiceReferenceOSGi.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ServiceReferenceOSGi.java
index d93904f..998bbae 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ServiceReferenceOSGi.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/internal/ServiceReferenceOSGi.java
@@ -30,7 +30,7 @@
 public class ServiceReferenceOSGi<T>
 	extends OSGiImpl<CachingServiceReference<T>> {
 
-	public ServiceReferenceOSGi(String filterString, Class<T> clazz) {
+	public ServiceReferenceOSGi(Class<T> clazz, String filterString) {
 
 		super((executionContext, op) -> {
 			ServiceTracker<T, Tracked<T>>
diff --git a/component-dsl/src/main/java/org/apache/aries/component/dsl/services/ServiceReferences.java b/component-dsl/src/main/java/org/apache/aries/component/dsl/services/ServiceReferences.java
index 4dc59d0..cc2886f 100644
--- a/component-dsl/src/main/java/org/apache/aries/component/dsl/services/ServiceReferences.java
+++ b/component-dsl/src/main/java/org/apache/aries/component/dsl/services/ServiceReferences.java
@@ -26,19 +26,19 @@
     static <T> OSGi<CachingServiceReference<T>> withUpdate(
         Class<T> clazz) {
 
-        return new ServiceReferenceOSGi<>(null, clazz);
+        return new ServiceReferenceOSGi<>(clazz, null);
     }
 
     static OSGi<CachingServiceReference<Object>> withUpdate(
         String filterString) {
 
-        return new ServiceReferenceOSGi<>(filterString, null);
+        return new ServiceReferenceOSGi<>(null, filterString);
     }
 
     static <T> OSGi<CachingServiceReference<T>> withUpdate(
         Class<T> clazz, String filterString) {
 
-        return new ServiceReferenceOSGi<>(filterString, clazz);
+        return new ServiceReferenceOSGi<>(clazz, filterString);
     }
 
 }