diff --git a/src/tracking/tracking.service.ts b/src/tracking/tracking.service.ts
index c40d5f78cda46a69127463431a2abfb6032a3793..769ae24ed72d035378d75a87fba3c1385b193fc1 100644
--- a/src/tracking/tracking.service.ts
+++ b/src/tracking/tracking.service.ts
@@ -77,28 +77,46 @@ export class TrackingService {
       let factions = await this.factionRepository.find({ game: gameId });
       playerdata = await Promise.all(
         factions.map(async faction => {
-          return await this.trackingrepository.find({
+          let rawdata = await this.trackingrepository.find({
             where: { faction: faction.factionId },
             relations: ['faction', 'gamepersonId'],
           });
+          let groups = {
+            'infantry.svg': [],
+            'recon.svg': [],
+            'mechanized.svg': [],
+          };
+          rawdata.forEach(async player => {
+            groups[player.icon].push(player);
+          });
+          return groups;
         }),
       );
     }
     // parse data
+    // create an array for each faction
+    // inside faction create an array for each icon type
+    // insisde icon arrays include all players with same icon
     const currentdata = await Promise.all(
       await playerdata.map(async faction => {
-        return await Promise.all(
-          faction.map(async player => {
-            return await {
-              gamepersonId: player['gamepersonId']['gamepersonId'],
-              gamepersonRole: player['gamepersonId']['role'],
-              factionId: player['faction']['factionId'],
-              factionColour: player['faction']['colour'],
-              icon: player['icon'],
-              coordinates: player['data'].pop(),
-            };
-          }),
-        );
+        let data = [];
+        for (let group in faction) {
+          data.push(
+            await Promise.all(
+              faction[group].map(async player => {
+                return await {
+                  gamepersonId: player['gamepersonId']['gamepersonId'],
+                  gamepersonRole: player['gamepersonId']['role'],
+                  factionId: player['faction']['factionId'],
+                  factionColour: player['faction']['colour'],
+                  icon: player['icon'],
+                  coordinates: player['data'].pop(),
+                };
+              }),
+            ),
+          );
+        }
+        return data;
       }),
     );
     return currentdata;