diff --git a/src/main/java/com/example/demo/domain/BaseLevel.java b/src/main/java/com/example/demo/domain/BaseLevel.java
index 42e528e1583232eea5b646397d83a313c8820ec1..6062cfb95047ea71e83c9f218212527f0ea474bb 100644
--- a/src/main/java/com/example/demo/domain/BaseLevel.java
+++ b/src/main/java/com/example/demo/domain/BaseLevel.java
@@ -1,6 +1,7 @@
 package com.example.demo.domain;
 
 
+import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
@@ -23,7 +24,9 @@ public abstract class BaseLevel {
     private String title;
     private String estimatedDuration;
     private Long maxScore;
-    private Integer orderInTrainingDefinition;
+
+    @Column(name = "order_in_training_definition", nullable = false)
+    private Integer order;
 
     @ManyToOne(fetch = FetchType.LAZY)
     private PhaseLevel phaseLevel;
@@ -54,12 +57,12 @@ public abstract class BaseLevel {
         this.maxScore = maxScore;
     }
 
-    public Integer getOrderInTrainingDefinition() {
-        return orderInTrainingDefinition;
+    public Integer getOrder() {
+        return order;
     }
 
-    public void setOrderInTrainingDefinition(Integer orderInTrainingDefinition) {
-        this.orderInTrainingDefinition = orderInTrainingDefinition;
+    public void setOrder(Integer order) {
+        this.order = order;
     }
 
     public Long getId() {
diff --git a/src/main/java/com/example/demo/mapper/BeanMapper.java b/src/main/java/com/example/demo/mapper/BeanMapper.java
index a0ea597a8897060c3ff64022d4b0c1adbecc6499..cee2cef2fa476d30016db6cce970311f4d3f67f9 100644
--- a/src/main/java/com/example/demo/mapper/BeanMapper.java
+++ b/src/main/java/com/example/demo/mapper/BeanMapper.java
@@ -31,29 +31,22 @@ public interface BeanMapper {
 
     AssessmentLevelDto toDto(AssessmentLevel assessmentLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     AssessmentLevel toEntity(AssessmentLevelDto assessmentLevel);
 
     GameLevelDto toDto(GameLevel gameLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     GameLevel toEntity(GameLevelDto gameLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     GameLevel toEntity(GameLevelCreateDto gameLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     GameLevel toEntity(GameLevelUpdateDto gameLevel);
 
     InfoLevelDto toDto(InfoLevel infoLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     InfoLevel toEntity(InfoLevelDto infoLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     InfoLevel toEntity(InfoLevelCreateDto gameLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     InfoLevel toEntity(InfoLevelUpdateDto gameLevel);
 
     AttachmentDto toDto(Attachment attachment);
@@ -62,33 +55,24 @@ public interface BeanMapper {
 
     PhaseLevelDto toDto(PhaseLevel phaseLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     PhaseLevel toEntity(PhaseLevelDto phaseLevel);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     AssessmentLevel toAssessmentLevel(GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     InfoLevel toInfoLevel(GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     GameLevel toGameLevel(GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     PhaseLevel toPhaseLevel(GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     AssessmentLevel updateAssessmentLevel(@MappingTarget AssessmentLevel assessmentLevel, GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     InfoLevel updateInfoLevel(@MappingTarget InfoLevel infoLevel, GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     @Mapping(target = "phaseLevel", ignore = true)
     @Mapping(target = "attachments", ignore = true) // TODO not really sure about this
     GameLevel updateGameLevel(@MappingTarget GameLevel gameLevel, GameDefinitionCreateDto gameDefinitionCreateDto);
 
-    @Mapping(target = "orderInTrainingDefinition", source = "order")
     @Mapping(target = "subLevels", ignore = true)
     PhaseLevel updatePhaseLevel(@MappingTarget PhaseLevel phaseLevel, GameDefinitionCreateDto gameDefinitionCreateDto);
 
diff --git a/src/main/java/com/example/demo/repository/BaseLevelRepository.java b/src/main/java/com/example/demo/repository/BaseLevelRepository.java
index 7754109783192421e715e7d01beeee1cdfa33ee1..d08668bef36104e5b6825e8831b0712ffaddaec9 100644
--- a/src/main/java/com/example/demo/repository/BaseLevelRepository.java
+++ b/src/main/java/com/example/demo/repository/BaseLevelRepository.java
@@ -7,6 +7,6 @@ import org.springframework.data.repository.query.Param;
 
 public interface BaseLevelRepository  extends JpaRepository<BaseLevel, Long> {
 
-    @Query("SELECT COALESCE(MAX(l.orderInTrainingDefinition), -1) FROM BaseLevel l WHERE l.trainingDefinitionId = :trainingDefinitionId")
+    @Query("SELECT COALESCE(MAX(l.order), -1) FROM BaseLevel l WHERE l.trainingDefinitionId = :trainingDefinitionId")
     Integer getCurrentMaxOrder(@Param("trainingDefinitionId") Long trainingDefinitionId);
 }
diff --git a/src/main/java/com/example/demo/repository/GameLevelRepository.java b/src/main/java/com/example/demo/repository/GameLevelRepository.java
index 7e9599c503de6ffc02c8626622fca1c8f1ea0ec9..2fbf2407bb2bc26867647121f22d264e26d006dc 100644
--- a/src/main/java/com/example/demo/repository/GameLevelRepository.java
+++ b/src/main/java/com/example/demo/repository/GameLevelRepository.java
@@ -7,6 +7,6 @@ import org.springframework.data.repository.query.Param;
 
 public interface GameLevelRepository extends JpaRepository<GameLevel, Long> {
 
-    @Query("SELECT COALESCE(MAX(g.orderInTrainingDefinition), -1) FROM GameLevel g WHERE g.phaseLevel.id = :phaseId")
+    @Query("SELECT COALESCE(MAX(g.order), -1) FROM GameLevel g WHERE g.phaseLevel.id = :phaseId")
     Integer getCurrentMaxOrder(@Param("phaseId") Long phaseId);
 }
diff --git a/src/main/java/com/example/demo/service/AssessmentLevelService.java b/src/main/java/com/example/demo/service/AssessmentLevelService.java
index 7a2774fadfc11827675bb8575c86d6a0da270f1e..908934c6df3f58f5ebd6355966e7e96d1b36b4de 100644
--- a/src/main/java/com/example/demo/service/AssessmentLevelService.java
+++ b/src/main/java/com/example/demo/service/AssessmentLevelService.java
@@ -1,9 +1,7 @@
 package com.example.demo.service;
 
 import com.example.demo.domain.AssessmentLevel;
-import com.example.demo.domain.InfoLevel;
 import com.example.demo.dto.AssessmentLevelDto;
-import com.example.demo.dto.InfoLevelDto;
 import com.example.demo.mapper.BeanMapper;
 import com.example.demo.repository.AssessmentLevelRepository;
 import com.example.demo.repository.BaseLevelRepository;
@@ -23,7 +21,8 @@ public class AssessmentLevelService {
 
         AssessmentLevel assessmentLevel = new AssessmentLevel();
         assessmentLevel.setTitle("Title of assessment level");
-        assessmentLevel.setOrderInTrainingDefinition(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
+        assessmentLevel.setTrainingDefinitionId(trainingDefinitionId);
+        assessmentLevel.setOrder(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
 
         AssessmentLevel persistedEntity = assessmentLevelRepository.save(assessmentLevel);
 
diff --git a/src/main/java/com/example/demo/service/GameLevelService.java b/src/main/java/com/example/demo/service/GameLevelService.java
index 46b432c133360adbfc09ccfd45059f5186f4e279..233a50edf56e83ac924ea7828bf56af58e0854a3 100644
--- a/src/main/java/com/example/demo/service/GameLevelService.java
+++ b/src/main/java/com/example/demo/service/GameLevelService.java
@@ -31,7 +31,7 @@ public class GameLevelService {
     public GameLevelDto createDefaultGameLevel(Long phaseId) {
         GameLevel gameLevel = new GameLevel();
         gameLevel.setTitle("Title of game");
-        gameLevel.setOrderInTrainingDefinition(gameLevelRepository.getCurrentMaxOrder(phaseId) + 1);
+        gameLevel.setOrder(gameLevelRepository.getCurrentMaxOrder(phaseId) + 1);
 
         GameLevel persistedEntity = gameLevelRepository.save(gameLevel);
 
diff --git a/src/main/java/com/example/demo/service/InfoLevelService.java b/src/main/java/com/example/demo/service/InfoLevelService.java
index f36b80ec51bb5f0ac938d995f9b48032ca5da70d..35ecc5de417481ff425e5c4d520539b926f923c1 100644
--- a/src/main/java/com/example/demo/service/InfoLevelService.java
+++ b/src/main/java/com/example/demo/service/InfoLevelService.java
@@ -37,7 +37,8 @@ public class InfoLevelService {
         InfoLevel infoLevel = new InfoLevel();
         infoLevel.setContent("Content of info level");
         infoLevel.setTitle("Title of info level");
-        infoLevel.setOrderInTrainingDefinition(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
+        infoLevel.setTrainingDefinitionId(trainingDefinitionId);
+        infoLevel.setOrder(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
 
         InfoLevel persistedEntity = infoLevelRepository.save(infoLevel);
 
diff --git a/src/main/java/com/example/demo/service/LevelOperationsService.java b/src/main/java/com/example/demo/service/LevelOperationsService.java
index f7f2447e3de8eaab4d3c4620a4d653b4abc62bdc..fc25235d946fdecfdbaa0e2509580619496bdf99 100644
--- a/src/main/java/com/example/demo/service/LevelOperationsService.java
+++ b/src/main/java/com/example/demo/service/LevelOperationsService.java
@@ -39,11 +39,11 @@ public class LevelOperationsService {
             return;
         }
 
-        int fromOrder = levelFrom.get().getOrderInTrainingDefinition();
-        int toOrder = levelTo.get().getOrderInTrainingDefinition();
+        int fromOrder = levelFrom.get().getOrder();
+        int toOrder = levelTo.get().getOrder();
 
-        levelFrom.get().setOrderInTrainingDefinition(toOrder);
-        levelTo.get().setOrderInTrainingDefinition(fromOrder);
+        levelFrom.get().setOrder(toOrder);
+        levelTo.get().setOrder(fromOrder);
 
         baseLevelRepository.save(levelFrom.get());
         baseLevelRepository.save(levelTo.get());
diff --git a/src/main/java/com/example/demo/service/PhaseLevelService.java b/src/main/java/com/example/demo/service/PhaseLevelService.java
index d087e4a62175ff40da39996073deb12d0db4296e..a21c0194b5d4263086f50b48e72eeabd118d6d29 100644
--- a/src/main/java/com/example/demo/service/PhaseLevelService.java
+++ b/src/main/java/com/example/demo/service/PhaseLevelService.java
@@ -21,7 +21,8 @@ public class PhaseLevelService {
 
         PhaseLevel phaseLevel = new PhaseLevel();
         phaseLevel.setTitle("Title of assessment level");
-        phaseLevel.setOrderInTrainingDefinition(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
+        phaseLevel.setTrainingDefinitionId(trainingDefinitionId);
+        phaseLevel.setOrder(baseLevelRepository.getCurrentMaxOrder(trainingDefinitionId) + 1);
 
         PhaseLevel persistedEntity = phaseLevelRepository.save(phaseLevel);