diff --git a/src/draw/draw.controller.ts b/src/draw/draw.controller.ts
index 10b836118855d17bee7856203b1258f4b572c8d5..26f6cf8c56142ef190ad3bcbfd7ce9d32caa371e 100644
--- a/src/draw/draw.controller.ts
+++ b/src/draw/draw.controller.ts
@@ -12,6 +12,7 @@ import {
 import { AuthGuard } from '../shared/auth.guard';
 import { DrawService } from './draw.service';
 import { Roles, GameStates } from '../shared/guard.decorator';
+import { MapDrawingDTO, ReturnDrawingsDTO } from './mapdrawing.dto';
 
 /*
       DrawController
@@ -25,17 +26,17 @@ export class DrawController {
   constructor(private drawService: DrawService) {}
 
   @Put('mapdrawing/:id')
-  @UsePipes(new ValidationPipe())
   @Roles('admin', 'factionleader')
   @GameStates('CREATED', 'STARTED')
-  async draw(@Param('id') gameId, @Body() data) {
+  @UsePipes(new ValidationPipe())
+  async draw(@Param('id') gameId, @Body() data: MapDrawingDTO) {
     return this.drawService.draw(gameId, data);
   }
 
   @Get('map/:id')
   @UseGuards(new AuthGuard())
   @UsePipes(new ValidationPipe())
-  async drawMap(@Param('id') id, @Body() data) {
+  async drawMap(@Param('id') id, @Body() data: ReturnDrawingsDTO) {
     return this.drawService.drawMap(id, data);
   }
 }
diff --git a/src/draw/draw.service.ts b/src/draw/draw.service.ts
index ffa48d4b634a35c6b0dc4bb26391d269c9f9b76a..d5ddf23e9574771bc769e2b6d58b59a4e95ad10d 100644
--- a/src/draw/draw.service.ts
+++ b/src/draw/draw.service.ts
@@ -3,6 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm';
 import { Repository } from 'typeorm';
 
 import { MapDrawingEntity } from '../draw/coordinate.entity';
+import { MapDrawingDTO, ReturnDrawingsDTO } from './mapdrawing.dto';
 
 @Injectable()
 export class DrawService {
@@ -11,11 +12,9 @@ export class DrawService {
     private mapDrawingRepository: Repository<MapDrawingEntity>,
   ) {}
 
-  async draw(gameId, data: MapDrawingEntity) {
+  async draw(gameId, data: MapDrawingDTO) {
     data['gameId'] = gameId;
-
     const drawing = await this.mapDrawingRepository.create(data);
-
     if (data.mapDrawingId == null || data.mapDrawingId == '') {
       // luo uuden instanssin.
       const mapDrawing = await this.mapDrawingRepository.insert(drawing);
@@ -27,13 +26,21 @@ export class DrawService {
   }
 
   // draw map based on game and
-  async drawMap(id, data: MapDrawingEntity) {
-    data['gameId'] = id;
-    data['drawingIsActive'] = true;
-    // get faction
-    const mapDrawings = await this.mapDrawingRepository.create(data);
-
+  async drawMap(id, data: ReturnDrawingsDTO) {
     // return mapdrawings with given faction and gameid
-    return await this.mapDrawingRepository.find(mapDrawings);
+    return await this.mapDrawingRepository.find({
+      where: [
+        {
+          gameId: id,
+          faction: data.factionId,
+          drawingIsActive: true,
+        },
+        {
+          gameId: id,
+          faction: null,
+          drawingIsActive: true,
+        },
+      ],
+    });
   }
 }
diff --git a/src/draw/mapdrawing.dto.ts b/src/draw/mapdrawing.dto.ts
index 03eca2d1057490558e271252d12a2cc1ef883273..98b2d5a95a6bcc0ad077bec4a38f367788f852c9 100644
--- a/src/draw/mapdrawing.dto.ts
+++ b/src/draw/mapdrawing.dto.ts
@@ -1,26 +1,27 @@
-import { IsUUID } from 'class-validator';
+import { IsUUID, IsOptional, IsBoolean, Allow } from 'class-validator';
 
-import { GameDTO } from '../game/game.dto';
-import { GameEntity, Game_PersonEntity } from '../game/game.entity';
 import { FactionEntity } from '../faction/faction.entity';
-import { FactionDTO } from '../faction/faction.dto';
-import { MapDrawingEntity } from '../draw/coordinate.entity';
+import { GameEntity } from 'src/game/game.entity';
 
 export class MapDrawingDTO {
+  @IsOptional()
+  @IsUUID('4')
+  mapDrawingId: string;
+  @Allow()
   data: JSON;
-  gameId: GameDTO;
-  faction?: FactionDTO;
-  isActive?: boolean;
-  validUntil?: string;
+  @IsOptional()
+  @IsUUID('4')
+  gameId: GameEntity;
+  @IsOptional()
+  @IsUUID('4')
+  faction?: FactionEntity;
+  @IsBoolean()
+  drawingIsActive?: boolean;
+  drawingValidTill?: string;
 }
 
-export class DrawMapDTO {
+export class ReturnDrawingsDTO {
+  @IsOptional()
   @IsUUID('4')
-  mapDrawingId: MapDrawingEntity;
-
-  gameId: GameEntity;
   factionId: FactionEntity;
-
-  gamepersonId: Game_PersonEntity;
-  data: JSON;
 }