diff --git a/src/draw/draw.service.ts b/src/draw/draw.service.ts
index 5f7566cda9d127173cbba11a8f2f92727a38f7dc..e1c416c70504f0d9b6df4814da79d1aed85a373f 100644
--- a/src/draw/draw.service.ts
+++ b/src/draw/draw.service.ts
@@ -30,13 +30,7 @@ export class DrawService {
       drawing.faction = gameperson.faction;
       const mapDrawing = await this.mapDrawingRepository.insert(drawing);
       // create a history entity and insert it
-      const history = await this.mapDrawHistoryRepository.create({
-        data: data.data,
-        drawingIsActive: data.drawingIsActive,
-        mapdrawing: mapDrawing.identifiers[0]['mapDrawingId'],
-        timestamp: Date.now(),
-      });
-      await this.mapDrawHistoryRepository.insert(history);
+      await this.createHistory(data, gameperson, mapDrawing);
       return mapDrawing.identifiers;
     }
     // get ref from db
@@ -46,13 +40,7 @@ export class DrawService {
     });
     if (await draw.ownershipCheck(gameperson.faction, gameperson.role)) {
       // else update the existing instance
-      const history = await this.mapDrawHistoryRepository.create({
-        data: data.data,
-        drawingIsActive: data.drawingIsActive,
-        mapdrawing: data.mapDrawingId,
-        timestamp: Date.now(),
-      });
-      await this.mapDrawHistoryRepository.insert(history);
+      await this.createHistory(data, gameperson);
       return await this.mapDrawingRepository.save(drawing);
     }
 
@@ -62,6 +50,22 @@ export class DrawService {
     );
   }
 
+  // used to create mapDrawing history entity entry
+  private async createHistory(data, gameperson, mapDrawing?) {
+    // create a history entity and insert it
+    const history = await this.mapDrawHistoryRepository.create({
+      data: data.data,
+      drawingIsActive: data.drawingIsActive,
+      mapdrawing:
+        data.mapDrawingId || mapDrawing.identifiers[0]['mapDrawingId'],
+      timestamp: Date.now(),
+    });
+    history.data['faction'] = gameperson.faction
+      ? gameperson.faction.factionName
+      : 'admin';
+    await this.mapDrawHistoryRepository.insert(history);
+  }
+
   // draw map based on game and gameperson faction
   async drawMap(gameperson, gameId) {
     // return all active drawings if admin