diff --git a/src/main/java/fr/irit/smac/amas4dc/amas/DynamicClusteringAMAS.java b/src/main/java/fr/irit/smac/amas4dc/amas/DynamicClusteringAMAS.java
index a1e3aa2247f47f6b1e2d436095f87f5bb99ec103..680929a0bd308a0f4d2023ee7284b99288b1043c 100644
--- a/src/main/java/fr/irit/smac/amas4dc/amas/DynamicClusteringAMAS.java
+++ b/src/main/java/fr/irit/smac/amas4dc/amas/DynamicClusteringAMAS.java
@@ -27,15 +27,16 @@ public class DynamicClusteringAMAS<T extends DataPoint> extends Amas<DynamicClus
 	protected void onSystemCycleBegin() {
 		if (logger.isLoggable(Level.INFO))
 			logger.info("---- BEGIN MAS CYCLE ----");
-		if (agents.isEmpty() || allAgentsAreDormant()) {
+		if (agents.isEmpty() || allAgentsAreReadyToStop()) {
 			var newDataPoint = environment.pollPendingDataPoint();
 			newDataPoint.ifPresent(dataPoint -> new DataPointAgent<T>(this, dataPoint));
 		}
 	}
 
-	private boolean allAgentsAreDormant() {
+	private boolean allAgentsAreReadyToStop() {
 		return agents.stream()
-		             .noneMatch(agent -> agent instanceof ClusterAgent clusterAgent && !clusterAgent.readyToStop());
+		             .noneMatch(agent -> (agent instanceof ClusterAgent clusterAgent && !clusterAgent.readyToStop()) ||
+				             (agent instanceof DataPointAgent dataPointAgent && !dataPointAgent.readyToStop()));
 	}
 
 	@Override
@@ -49,7 +50,6 @@ public class DynamicClusteringAMAS<T extends DataPoint> extends Amas<DynamicClus
 	@Override
 	public boolean stopCondition() {
 		return !environment.hasRemainingPendingAdditionDataPoints() &&
-				agents.stream().noneMatch(agent -> agent instanceof ClusterAgent clusterAgent && !clusterAgent.readyToStop()) &&
-				agents.stream().noneMatch(agent -> agent instanceof DataPointAgent);
+				allAgentsAreReadyToStop();
 	}
 }
diff --git a/src/main/java/fr/irit/smac/amas4dc/amas/agent/DataPointAgent.java b/src/main/java/fr/irit/smac/amas4dc/amas/agent/DataPointAgent.java
index c331a3f21fcfafa03ba01f490ead7d1921214aee..aeca5e0caefe4071f6e344523e1e75e4d7d048d5 100644
--- a/src/main/java/fr/irit/smac/amas4dc/amas/agent/DataPointAgent.java
+++ b/src/main/java/fr/irit/smac/amas4dc/amas/agent/DataPointAgent.java
@@ -142,6 +142,10 @@ public class DataPointAgent<T extends DataPoint> extends Agent<DynamicClustering
 		}
 	}
 
+	public boolean readyToStop() {
+		return false;
+	}
+
 
 	private record ClusterSimilarityScore<T extends DataPoint>(Cluster<T> cluster, float score) {