diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java
index 7953a630b0d2524f8c4e3e7f80170b3e262ac62f..635f9985def107f9517c0e015666690b71b8f197 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java
@@ -2,6 +2,7 @@ package lcsb.mapviewer.api;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -200,6 +201,23 @@ public abstract class BaseRestImpl {
 		for (Target target : targets) {
 			result.add(prepareTarget(target, models));
 		}
+		result.sort(new Comparator<Map<String, Object>>() {
+
+			@Override
+			public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+				List<?> targetedObjects1 = (List<?>) o1.get("targetElements");
+				List<?> targetedObjects2 = (List<?>) o2.get("targetElements");
+				Integer size1 = 0;
+				Integer size2 = 0;
+				if (targetedObjects1 != null) {
+					size1 = targetedObjects1.size();
+				}
+				if (targetedObjects2 != null) {
+					size2 = targetedObjects2.size();
+				}
+				return -size1.compareTo(size2);
+			}
+		});
 		return result;
 	}
 
@@ -238,5 +256,4 @@ public abstract class BaseRestImpl {
 		}
 	}
 
-
 }