diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/UserRef.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/User.java
similarity index 84%
rename from src/main/java/cz/muni/ics/kypo/training/adaptive/domain/UserRef.java
rename to src/main/java/cz/muni/ics/kypo/training/adaptive/domain/User.java
index ab89e57c7f0d06d61e34f26042f1af2aa56ac022..0f124b11d3f246b9d83dcd6fc48dc29140864a60 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/UserRef.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/User.java
@@ -13,30 +13,30 @@ import java.util.Set;
  * Class representing DB reference for user and training instances and definition they can access
  */
 @Entity
-@Table(name = "user_ref", uniqueConstraints = @UniqueConstraint(columnNames = {"user_ref_id"}))
+@Table(name = "user", uniqueConstraints = @UniqueConstraint(columnNames = {"user_ref_id"}))
 @NamedQueries({
         @NamedQuery(
-                name = "UserRef.findUsers",
-                query = "SELECT ur FROM UserRef ur WHERE ur.userRefId IN :userRefId"
+                name = "User.findUsers",
+                query = "SELECT u FROM User u WHERE u.userRefId IN :userRefId"
         ),
         @NamedQuery(
-                name = "UserRef.findUserByUserRefId",
-                query = "SELECT ur FROM UserRef ur WHERE ur.userRefId = :userRefId"
+                name = "User.findUserByUserRefId",
+                query = "SELECT u FROM User u WHERE u.userRefId = :userRefId"
         ),
         @NamedQuery(
-                name = "UserRef.findParticipantsRefByTrainingInstanceId",
+                name = "User.findParticipantsRefByTrainingInstanceId",
                 query = "SELECT pr.userRefId FROM TrainingRun tr " +
                         "INNER JOIN tr.participantRef pr " +
                         "INNER JOIN tr.trainingInstance ti " +
                         "WHERE ti.id = :trainingInstanceId"
         )
 })
-public class UserRef {
+public class User {
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "userRefGenerator")
-    @SequenceGenerator(name = "userRefGenerator", sequenceName = "user_ref_seq")
-    @Column(name = "id", nullable = false, unique = true)
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "userGenerator")
+    @SequenceGenerator(name = "userGenerator", sequenceName = "user_seq")
+    @Column(name = "user_id", nullable = false, unique = true)
     private Long id;
     @Column(name = "user_ref_id", nullable = false)
     private Long userRefId;
@@ -48,14 +48,14 @@ public class UserRef {
     /**
      * Instantiates a new user reference
      */
-    public UserRef() {
+    public User() {
     }
 
     /**
      * Instantiates a new user reference
      * @param userRefId id of the user stored in user management service
      */
-    public UserRef(Long userRefId) {
+    public User(Long userRefId) {
         this.userRefId = userRefId;
     }
 
@@ -170,9 +170,9 @@ public class UserRef {
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
-        if (!(o instanceof UserRef)) return false;
-        UserRef userRef = (UserRef) o;
-        return Objects.equals(getUserRefId(), userRef.getUserRefId());
+        if (!(o instanceof User)) return false;
+        User user = (User) o;
+        return Objects.equals(getUserRefId(), user.getUserRefId());
     }
 
     @Override
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/phase/questions/QuestionAnswer.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/phase/questions/QuestionAnswer.java
index 1e5a94bad9777acaa6b105dd34bf74180848c817..e70f6274eb46ed73dd86fb262d368eea0b8b9eb9 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/phase/questions/QuestionAnswer.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/phase/questions/QuestionAnswer.java
@@ -1,7 +1,5 @@
 package cz.muni.ics.kypo.training.adaptive.domain.phase.questions;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
-
 import javax.persistence.EmbeddedId;
 import javax.persistence.Entity;
 import javax.persistence.Table;
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingDefinition.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingDefinition.java
index 760f0eeb15284663b43f48926ec4d861f023935a..bd64521ada09460f5b72d1d79ca3e05fddabffe2 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingDefinition.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingDefinition.java
@@ -1,6 +1,6 @@
 package cz.muni.ics.kypo.training.adaptive.domain.training;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.enums.TDState;
 
 import javax.persistence.*;
@@ -44,11 +44,11 @@ public class TrainingDefinition {
     @Enumerated(EnumType.STRING)
     private TDState state;
     @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
-    @JoinTable(name = "training_definition_user_ref",
+    @JoinTable(name = "training_definition_user",
             joinColumns = @JoinColumn(name = "training_definition_id"),
-            inverseJoinColumns = @JoinColumn(name = "user_ref_id")
+            inverseJoinColumns = @JoinColumn(name = "user_id")
     )
-    private Set<UserRef> authors = new HashSet<>();
+    private Set<User> authors = new HashSet<>();
     @Column(name = "show_stepper_bar", nullable = false)
     private boolean showStepperBar;
     @Column(name = "estimated_duration", nullable = true)
@@ -173,7 +173,7 @@ public class TrainingDefinition {
      *
      * @return the authors
      */
-    public Set<UserRef> getAuthors() {
+    public Set<User> getAuthors() {
         return Collections.unmodifiableSet(authors);
     }
 
@@ -182,7 +182,7 @@ public class TrainingDefinition {
      *
      * @param authors the authors
      */
-    public void setAuthors(Set<UserRef> authors) {
+    public void setAuthors(Set<User> authors) {
         this.authors = authors;
     }
 
@@ -191,7 +191,7 @@ public class TrainingDefinition {
      *
      * @param authorRef the author ref
      */
-    public void addAuthor(UserRef authorRef) {
+    public void addAuthor(User authorRef) {
         this.authors.add(authorRef);
         authorRef.addTrainingDefinition(this);
     }
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingInstance.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingInstance.java
index e69604c4757b8bbe58ef51813ec7abdaf57e0246..17250ec7fca37997be7e30cf2e1985104a253b9d 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingInstance.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingInstance.java
@@ -1,6 +1,6 @@
 package cz.muni.ics.kypo.training.adaptive.domain.training;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 
 import javax.persistence.*;
 import java.time.LocalDateTime;
@@ -90,11 +90,11 @@ public class TrainingInstance {
     @JoinColumn(name = "training_definition_id")
     private TrainingDefinition trainingDefinition;
     @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
-    @JoinTable(name = "training_instance_user_ref",
+    @JoinTable(name = "training_instance_user",
             joinColumns = @JoinColumn(name = "training_instance_id"),
-            inverseJoinColumns = @JoinColumn(name = "user_ref_id")
+            inverseJoinColumns = @JoinColumn(name = "user_id")
     )
-    private Set<UserRef> organizers = new HashSet<>();
+    private Set<User> organizers = new HashSet<>();
 
     /**
      * Gets unique identification number of Training instance
@@ -227,7 +227,7 @@ public class TrainingInstance {
      *
      * @return the organizers
      */
-    public Set<UserRef> getOrganizers() {
+    public Set<User> getOrganizers() {
         return Collections.unmodifiableSet(organizers);
     }
 
@@ -236,18 +236,18 @@ public class TrainingInstance {
      *
      * @param organizers the organizers
      */
-    public void setOrganizers(Set<UserRef> organizers) {
+    public void setOrganizers(Set<User> organizers) {
         this.organizers = organizers;
     }
 
     /**
      * Adds user to the set of users that can make changes to the Training instance
      *
-     * @param userRef the user ref
+     * @param user the user ref
      */
-    public void addOrganizer(UserRef userRef) {
-        this.organizers.add(userRef);
-        userRef.addTrainingInstance(this);
+    public void addOrganizer(User user) {
+        this.organizers.add(user);
+        user.addTrainingInstance(this);
     }
 
     /**
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingRun.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingRun.java
index 7f0e4c910057373c0bc06bee4a6e3826d66bb807..21941ef3c62bf4b3229b0fc4e32fd375a15ca2f3 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingRun.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/training/TrainingRun.java
@@ -1,6 +1,6 @@
 package cz.muni.ics.kypo.training.adaptive.domain.training;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.AbstractPhase;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.InfoPhase;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.Task;
@@ -122,8 +122,8 @@ public class TrainingRun {
     @Column(name = "sandbox_instance_ref_id")
     private Long sandboxInstanceRefId;
     @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "user_ref_id", nullable = false)
-    private UserRef participantRef;
+    @JoinColumn(name = "user_id", nullable = false)
+    private User participantRef;
     @Column(name = "phase_answered")
     private boolean phaseAnswered;
     @Column(name = "previous_sandbox_instance_ref_id")
@@ -309,7 +309,7 @@ public class TrainingRun {
      *
      * @return the participant ref
      */
-    public UserRef getParticipantRef() {
+    public User getParticipantRef() {
         return participantRef;
     }
 
@@ -318,7 +318,7 @@ public class TrainingRun {
      *
      * @param participantRef the participant ref
      */
-    public void setParticipantRef(UserRef participantRef) {
+    public void setParticipantRef(User participantRef) {
         this.participantRef = participantRef;
     }
 
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/ExportImportFacade.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/ExportImportFacade.java
index df6210bdb8793f2f73f782e7efe034d51d156303..26cc6d17bd83175093053ecbac14442323295f10 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/ExportImportFacade.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/ExportImportFacade.java
@@ -8,7 +8,7 @@ import cz.muni.ics.kypo.training.adaptive.annotations.security.IsDesignerOrOrgan
 import cz.muni.ics.kypo.training.adaptive.annotations.security.IsOrganizerOrAdmin;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalRO;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalWO;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.AbstractPhase;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.QuestionnairePhase;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingDefinition;
@@ -204,7 +204,7 @@ public class ExportImportFacade {
             TrainingInstanceArchiveDTO archivedInstance = exportImportMapper.mapToDTO(trainingInstance);
             archivedInstance.setDefinitionId(trainingInstance.getTrainingDefinition().getId());
             Set<Long> organizersRefIds = trainingInstance.getOrganizers().stream()
-                    .map(UserRef::getUserRefId)
+                    .map(User::getUserRefId)
                     .collect(Collectors.toSet());
             archivedInstance.setOrganizersRefIds(new HashSet<>(organizersRefIds));
 
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingDefinitionFacade.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingDefinitionFacade.java
index 2bbb7f45934f469ac2f7b59c005a5ead8b6beb4d..ecb0fd796f90b385d007876e236a15cefa504822 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingDefinitionFacade.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingDefinitionFacade.java
@@ -6,7 +6,7 @@ import cz.muni.ics.kypo.training.adaptive.annotations.security.IsDesignerOrOrgan
 import cz.muni.ics.kypo.training.adaptive.annotations.security.IsOrganizerOrAdmin;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalRO;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalWO;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.AbstractPhase;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingDefinition;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingInstance;
@@ -183,10 +183,10 @@ public class TrainingDefinitionFacade {
         trainingDefinitionService.update(mappedTrainingDefinition);
     }
 
-    private UserRef createUserRefFromDTO(UserRefDTO userToBeCreated) {
-        UserRef userRef = new UserRef();
-        userRef.setUserRefId(userToBeCreated.getUserRefId());
-        return userRef;
+    private User createUserRefFromDTO(UserRefDTO userToBeCreated) {
+        User user = new User();
+        user.setUserRefId(userToBeCreated.getUserRefId());
+        return user;
     }
 
     /**
@@ -266,7 +266,7 @@ public class TrainingDefinitionFacade {
     public PageResultResource<UserRefDTO> getAuthors(Long trainingDefinitionId, Pageable pageable, String givenName, String familyName) {
         TrainingDefinition trainingDefinition = trainingDefinitionService.findById(trainingDefinitionId);
         return userManagementServiceApi.getUserRefDTOsByUserIds(trainingDefinition.getAuthors().stream()
-                        .map(UserRef::getUserRefId)
+                        .map(User::getUserRefId)
                         .collect(Collectors.toSet()),
                 pageable, givenName, familyName);
     }
@@ -285,7 +285,7 @@ public class TrainingDefinitionFacade {
     public PageResultResource<UserRefDTO> getDesignersNotInGivenTrainingDefinition(Long trainingDefinitionId, Pageable pageable, String givenName, String familyName) {
         TrainingDefinition trainingDefinition = trainingDefinitionService.findById(trainingDefinitionId);
         Set<Long> excludedUsers = trainingDefinition.getAuthors().stream()
-                .map(UserRef::getUserRefId)
+                .map(User::getUserRefId)
                 .collect(Collectors.toSet());
         return userManagementServiceApi.getUserRefsByRoleAndNotWithIds(RoleType.ROLE_TRAINING_DESIGNER, excludedUsers, pageable, givenName, familyName);
     }
@@ -317,7 +317,7 @@ public class TrainingDefinitionFacade {
         do {
             authors = userManagementServiceApi.getUserRefDTOsByUserIds(userRefIds, PageRequest.of(page, 999), null, null);
             Set<Long> actualAuthorsIds = trainingDefinition.getAuthors().stream()
-                    .map(UserRef::getUserRefId)
+                    .map(User::getUserRefId)
                     .collect(Collectors.toSet());
             page++;
             for (UserRefDTO author : authors.getContent()) {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingInstanceFacade.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingInstanceFacade.java
index 9064ff46c1919f05d489879fbe88fcc31e3b8bc8..45b481143381c1b5305d36e4ad6a649942e539db 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingInstanceFacade.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/facade/TrainingInstanceFacade.java
@@ -4,7 +4,7 @@ import com.querydsl.core.types.Predicate;
 import cz.muni.ics.kypo.training.adaptive.annotations.security.IsOrganizerOrAdmin;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalRO;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalWO;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingInstance;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingRun;
 import cz.muni.ics.kypo.training.adaptive.dto.UserRefDTO;
@@ -165,7 +165,7 @@ public class TrainingInstanceFacade {
         do {
             organizers = userManagementServiceApi.getUserRefDTOsByUserIds(userRefIdsOfOrganizers, PageRequest.of(page, 999), null, null);
             Set<Long> actualOrganizersIds = trainingInstance.getOrganizers().stream()
-                    .map(UserRef::getUserRefId)
+                    .map(User::getUserRefId)
                     .collect(Collectors.toSet());
             page++;
             for (UserRefDTO organizer : organizers.getContent()) {
@@ -181,10 +181,10 @@ public class TrainingInstanceFacade {
         } while (organizers.getPagination().getTotalPages() != page);
     }
 
-    private UserRef createUserRefFromDTO(UserRefDTO userToBeCreated) {
-        UserRef userRef = new UserRef();
-        userRef.setUserRefId(userToBeCreated.getUserRefId());
-        return userRef;
+    private User createUserRefFromDTO(UserRefDTO userToBeCreated) {
+        User user = new User();
+        user.setUserRefId(userToBeCreated.getUserRefId());
+        return user;
     }
 
     /**
@@ -331,7 +331,7 @@ public class TrainingInstanceFacade {
     public PageResultResource<UserRefDTO> getOrganizersOfTrainingInstance(Long trainingInstanceId, Pageable pageable, String givenName, String familyName) {
         TrainingInstance trainingInstance = trainingInstanceService.findById(trainingInstanceId);
         return userManagementServiceApi.getUserRefDTOsByUserIds(trainingInstance.getOrganizers().stream()
-                .map(UserRef::getUserRefId)
+                .map(User::getUserRefId)
                 .collect(Collectors.toSet()), pageable, givenName, familyName);
     }
 
@@ -350,7 +350,7 @@ public class TrainingInstanceFacade {
     public PageResultResource<UserRefDTO> getOrganizersNotInGivenTrainingInstance(Long trainingInstanceId, Pageable pageable, String givenName, String familyName) {
         TrainingInstance trainingInstance = trainingInstanceService.findById(trainingInstanceId);
         Set<Long> excludedOrganizers = trainingInstance.getOrganizers().stream()
-                .map(UserRef::getUserRefId)
+                .map(User::getUserRefId)
                 .collect(Collectors.toSet());
         return userManagementServiceApi.getUserRefsByRoleAndNotWithIds(RoleType.ROLE_TRAINING_ORGANIZER, excludedOrganizers, pageable, givenName, familyName);
     }
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/mapping/mapstruct/UserRefMapper.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/mapping/mapstruct/UserRefMapper.java
index bd878297b37de9791f44236058f1521f7ac120c3..064ab87c11246ba6596c341fb92acc253286bb80 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/mapping/mapstruct/UserRefMapper.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/mapping/mapstruct/UserRefMapper.java
@@ -1,6 +1,6 @@
 package cz.muni.ics.kypo.training.adaptive.mapping.mapstruct;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.dto.UserRefDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.export.UserRefExportDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.responses.PageResultResource;
@@ -18,39 +18,39 @@ import java.util.*;
 @Mapper(componentModel = "spring", uses = {TrainingInstanceMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
 public interface UserRefMapper extends ParentMapper {
 
-    UserRef mapToEntity(UserRefDTO dto);
+    User mapToEntity(UserRefDTO dto);
 
-    UserRefDTO mapToDTO(UserRef entity);
+    UserRefDTO mapToDTO(User entity);
 
-    List<UserRef> mapToList(Collection<UserRefDTO> dtos);
+    List<User> mapToList(Collection<UserRefDTO> dtos);
 
-    List<UserRefDTO> mapToListDTO(Collection<UserRef> entities);
+    List<UserRefDTO> mapToListDTO(Collection<User> entities);
 
-    Set<UserRef> mapToSet(Collection<UserRefDTO> dtos);
+    Set<User> mapToSet(Collection<UserRefDTO> dtos);
 
-    Set<UserRefDTO> mapToSetDTO(Collection<UserRef> entities);
+    Set<UserRefDTO> mapToSetDTO(Collection<User> entities);
 
-    List<UserRefExportDTO> mapUserRefExportDTOToUserRefDTO(Collection<UserRefDTO> userRefDTOs);
+    List<UserRefExportDTO> mapUserRefExportDTOToUserRefDTO(Collection<UserRefDTO> userRefDTOS);
 
-    default Optional<UserRef> mapToOptional(UserRefDTO dto) {
+    default Optional<User> mapToOptional(UserRefDTO dto) {
         return Optional.ofNullable(mapToEntity(dto));
     }
 
-    default Optional<UserRefDTO> mapToOptional(UserRef entity) {
+    default Optional<UserRefDTO> mapToOptional(User entity) {
         return Optional.ofNullable(mapToDTO(entity));
     }
 
-    default Page<UserRefDTO> mapToPageDTO(Page<UserRef> objects) {
+    default Page<UserRefDTO> mapToPageDTO(Page<User> objects) {
         List<UserRefDTO> mapped = mapToListDTO(objects.getContent());
         return new PageImpl<>(mapped, objects.getPageable(), mapped.size());
     }
 
-    default Page<UserRef> mapToPage(Page<UserRefDTO> objects) {
-        List<UserRef> mapped = mapToList(objects.getContent());
+    default Page<User> mapToPage(Page<UserRefDTO> objects) {
+        List<User> mapped = mapToList(objects.getContent());
         return new PageImpl<>(mapped, objects.getPageable(), mapped.size());
     }
 
-    default PageResultResource<UserRefDTO> mapToPageResultResource(Page<UserRef> objects) {
+    default PageResultResource<UserRefDTO> mapToPageResultResource(Page<User> objects) {
         List<UserRefDTO> mapped = new ArrayList<>();
         objects.forEach(object -> mapped.add(mapToDTO(object)));
         return new PageResultResource<>(mapped, createPagination(objects));
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/UserRefRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/UserRefRepository.java
index e8fe2b8b33c626fae2fbf66be712b79ec22c0adf..c44943f6b5b8a2978911a320b083a0338ded996f 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/UserRefRepository.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/UserRefRepository.java
@@ -1,6 +1,6 @@
 package cz.muni.ics.kypo.training.adaptive.repository;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.querydsl.QuerydslPredicateExecutor;
 import org.springframework.data.repository.query.Param;
@@ -10,32 +10,32 @@ import java.util.Optional;
 import java.util.Set;
 
 /**
- * The JPA repository interface to manage {@link UserRef} instances.
+ * The JPA repository interface to manage {@link User} instances.
  */
 @Repository
-public interface UserRefRepository extends JpaRepository<UserRef, Long>, QuerydslPredicateExecutor<UserRef> {
+public interface UserRefRepository extends JpaRepository<User, Long>, QuerydslPredicateExecutor<User> {
 
     /**
      * Find all users by userRefIds.
      *
      * @param userRefId the user ref id
-     * @return the set of {@link UserRef}
+     * @return the set of {@link User}
      */
-    Set<UserRef> findUsers(@Param("userRefId") Set<Long> userRefId);
+    Set<User> findUsers(@Param("userRefId") Set<Long> userRefId);
 
     /**
      * Find user by user ref id.
      *
      * @param userRefId the user id
-     * @return the {@link UserRef}
+     * @return the {@link User}
      */
-    Optional<UserRef> findUserByUserRefId(@Param("userRefId") Long userRefId);
+    Optional<User> findUserByUserRefId(@Param("userRefId") Long userRefId);
 
     /**
      * Find all participants of given training instance.
      *
      * @param trainingInstanceId id of the training instance
-     * @return the {@link UserRef}
+     * @return the {@link User}
      */
     Set<Long> findParticipantsRefByTrainingInstanceId(@Param("trainingInstanceId") Long trainingInstanceId);
 
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingDefinitionRepositoryImpl.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingDefinitionRepositoryImpl.java
index cb3313a9c1cbf07b42a43a5240d77e7b7d4ed0bb..69f200455d4813fdc85d542e058baaa5a38e725f 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingDefinitionRepositoryImpl.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingDefinitionRepositoryImpl.java
@@ -3,7 +3,7 @@ package cz.muni.ics.kypo.training.adaptive.repository.training;
 import com.querydsl.core.types.Predicate;
 import com.querydsl.jpa.JPQLQuery;
 import com.querydsl.jpa.impl.JPAQueryFactory;
-import cz.muni.ics.kypo.training.adaptive.domain.QUserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.QUser;
 import cz.muni.ics.kypo.training.adaptive.domain.training.QTrainingDefinition;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingDefinition;
 import org.springframework.data.domain.Page;
@@ -39,7 +39,7 @@ public class TrainingDefinitionRepositoryImpl extends QuerydslRepositorySupport
     public Page<TrainingDefinition> findAll(Predicate predicate, Pageable pageable, Long loggedInUserId) {
         Objects.requireNonNull(loggedInUserId, "Input logged in user ID must not be null.");
         QTrainingDefinition trainingDefinition = QTrainingDefinition.trainingDefinition;
-        QUserRef authors = new QUserRef("authors");
+        QUser authors = new QUser("authors");
 
         JPQLQuery<TrainingDefinition> query = new JPAQueryFactory(entityManager).selectFrom(trainingDefinition).distinct()
                 .leftJoin(trainingDefinition.authors, authors)
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingInstanceRepositoryImpl.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingInstanceRepositoryImpl.java
index eeb6fa7d8e0f72585b64e870462266acff6e3fe0..5c0352ba635d52302204273d521bdfcdd26227af 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingInstanceRepositoryImpl.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/training/TrainingInstanceRepositoryImpl.java
@@ -3,7 +3,7 @@ package cz.muni.ics.kypo.training.adaptive.repository.training;
 import com.querydsl.core.types.Predicate;
 import com.querydsl.jpa.JPQLQuery;
 import com.querydsl.jpa.impl.JPAQueryFactory;
-import cz.muni.ics.kypo.training.adaptive.domain.QUserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.QUser;
 import cz.muni.ics.kypo.training.adaptive.domain.training.QTrainingInstance;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingInstance;
 import org.springframework.data.domain.Page;
@@ -39,7 +39,7 @@ public class TrainingInstanceRepositoryImpl extends QuerydslRepositorySupport im
     public Page<TrainingInstance> findAll(Predicate predicate, Pageable pageable, Long loggedInUserId) {
         Objects.requireNonNull(loggedInUserId, "Input logged in user ID must not be null.");
         QTrainingInstance trainingInstance = QTrainingInstance.trainingInstance;
-        QUserRef organizers = new QUserRef("organizers");
+        QUser organizers = new QUser("organizers");
 
         JPQLQuery<TrainingInstance> query = new JPAQueryFactory(entityManager).selectFrom(trainingInstance).distinct()
                 .leftJoin(trainingInstance.organizers, organizers)
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/UserService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/UserService.java
index 23d48fd758adbbaee7f226095043820a6c0a5f44..e9ede2322e4371ebbe1eb2aae0390506c73fe25d 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/UserService.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/UserService.java
@@ -1,28 +1,14 @@
 package cz.muni.ics.kypo.training.adaptive.service;
 
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalWO;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
-import cz.muni.ics.kypo.training.adaptive.dto.UserRefDTO;
-import cz.muni.ics.kypo.training.adaptive.dto.responses.PageResultResource;
-import cz.muni.ics.kypo.training.adaptive.enums.RoleType;
-import cz.muni.ics.kypo.training.adaptive.exceptions.CustomWebClientException;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.exceptions.EntityErrorDetail;
 import cz.muni.ics.kypo.training.adaptive.exceptions.EntityNotFoundException;
-import cz.muni.ics.kypo.training.adaptive.exceptions.MicroserviceApiException;
 import cz.muni.ics.kypo.training.adaptive.repository.UserRefRepository;
 import cz.muni.ics.kypo.training.adaptive.service.api.UserManagementServiceApi;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-import org.springframework.web.reactive.function.client.WebClient;
-import org.springframework.web.util.UriBuilder;
-
-import java.util.Collections;
-import java.util.Set;
 
 /**
  * The type User service.
@@ -50,24 +36,24 @@ public class UserService {
      * Finds specific User reference by login
      *
      * @param userRefId of wanted User reference
-     * @return {@link UserRef} with corresponding login
+     * @return {@link User} with corresponding login
      * @throws EntityNotFoundException UserRef was not found
      */
-    public UserRef getUserByUserRefId(Long userRefId) {
+    public User getUserByUserRefId(Long userRefId) {
         return userRefRepository.findUserByUserRefId(userRefId)
-                .orElseThrow(() -> new EntityNotFoundException(new EntityErrorDetail(UserRef.class, "id", userRefId.getClass(), userRefId)));
+                .orElseThrow(() -> new EntityNotFoundException(new EntityErrorDetail(User.class, "id", userRefId.getClass(), userRefId)));
     }
 
     /**
      * Create new user reference
      *
-     * @param userRefToCreate user reference to be created
-     * @return created {@link UserRef}
+     * @param userToCreate user reference to be created
+     * @return created {@link User}
      */
     @TransactionalWO
-    public UserRef createUserRef(UserRef userRefToCreate) {
-        UserRef userRef = userRefRepository.save(userRefToCreate);
-        LOG.info("User ref with user_ref_id: {} created.", userRef.getUserRefId());
-        return userRef;
+    public User createUserRef(User userToCreate) {
+        User user = userRefRepository.save(userToCreate);
+        LOG.info("User ref with user_ref_id: {} created.", user.getUserRefId());
+        return user;
     }
 }
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/api/UserManagementServiceApi.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/api/UserManagementServiceApi.java
index b61b56d0d8dbbcbf5a00ade7ee1982b06f11c313..c5d2c95e8f4d4c410aab3ae45f155d7e25f279b2 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/api/UserManagementServiceApi.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/api/UserManagementServiceApi.java
@@ -1,6 +1,6 @@
 package cz.muni.ics.kypo.training.adaptive.service.api;
 
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.dto.UserRefDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.responses.PageResultResource;
 import cz.muni.ics.kypo.training.adaptive.enums.RoleType;
@@ -42,7 +42,7 @@ public class UserManagementServiceApi {
      * Finds specific User reference by login
      *
      * @param id of wanted User reference
-     * @return {@link UserRef} with corresponding login
+     * @return {@link User} with corresponding login
      * @throws EntityNotFoundException UserRef was not found
      */
     public UserRefDTO getUserRefDTOByUserRefId(Long id) {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingDefinitionService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingDefinitionService.java
index 6ab5b96c7cc4095f68de642993eaf6b2c72d4eb7..f0c126180ba286d5358abd974d7b1e47b01f515c 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingDefinitionService.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingDefinitionService.java
@@ -1,7 +1,7 @@
 package cz.muni.ics.kypo.training.adaptive.service.training;
 
 import com.querydsl.core.types.Predicate;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.*;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.Question;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.questions.QuestionChoice;
@@ -421,11 +421,11 @@ public class TrainingDefinitionService {
     }
 
     private void addLoggedInUserToTrainingDefinitionAsAuthor(TrainingDefinition trainingDefinition) {
-        Optional<UserRef> user = userRefRepository.findUserByUserRefId(userManagementServiceApi.getLoggedInUserRefId());
+        Optional<User> user = userRefRepository.findUserByUserRefId(userManagementServiceApi.getLoggedInUserRefId());
         if (user.isPresent()) {
             trainingDefinition.addAuthor(user.get());
         } else {
-            UserRef newUser = new UserRef(userManagementServiceApi.getLoggedInUserRefId());
+            User newUser = new User(userManagementServiceApi.getLoggedInUserRefId());
             trainingDefinition.addAuthor(newUser);
         }
         trainingDefinition.setLastEdited(getCurrentTimeInUTC());
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingInstanceService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingInstanceService.java
index 18c0ac6f85d44553620c84a4c5a35c846b402971..f314aed277a733d1dfacc3ea40642c46606d0161 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingInstanceService.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingInstanceService.java
@@ -2,7 +2,7 @@ package cz.muni.ics.kypo.training.adaptive.service.training;
 
 import com.querydsl.core.types.Predicate;
 import cz.muni.ics.kypo.training.adaptive.domain.AccessToken;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingInstance;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingRun;
 import cz.muni.ics.kypo.training.adaptive.exceptions.EntityConflictException;
@@ -203,12 +203,12 @@ public class TrainingInstanceService {
     }
 
     private void addLoggedInUserAsOrganizerToTrainingInstance(TrainingInstance trainingInstance) {
-        Optional<UserRef> authorOfTrainingInstance = organizerRefRepository.findUserByUserRefId(userManagementServiceApi.getLoggedInUserRefId());
+        Optional<User> authorOfTrainingInstance = organizerRefRepository.findUserByUserRefId(userManagementServiceApi.getLoggedInUserRefId());
         if (authorOfTrainingInstance.isPresent()) {
             trainingInstance.addOrganizer(authorOfTrainingInstance.get());
         } else {
-            UserRef userRef = new UserRef(userManagementServiceApi.getLoggedInUserRefId());
-            trainingInstance.addOrganizer(organizerRefRepository.save(userRef));
+            User user = new User(userManagementServiceApi.getLoggedInUserRefId());
+            trainingInstance.addOrganizer(organizerRefRepository.save(user));
         }
     }
 
@@ -270,9 +270,9 @@ public class TrainingInstanceService {
      * Find UserRefs by userRefId
      *
      * @param usersRefId of wanted UserRefs
-     * @return {@link UserRef}s with corresponding userRefIds
+     * @return {@link User}s with corresponding userRefIds
      */
-    public Set<UserRef> findUserRefsByUserRefIds(Set<Long> usersRefId) {
+    public Set<User> findUserRefsByUserRefIds(Set<Long> usersRefId) {
         return organizerRefRepository.findUsers(usersRefId);
     }
 
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingRunService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingRunService.java
index 88d7e2cabda9342d79f3fd2e35e8db90cef040a6..ea908359d8914c990cffb69a5188e4e383f2cb78 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingRunService.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/training/TrainingRunService.java
@@ -3,7 +3,7 @@ package cz.muni.ics.kypo.training.adaptive.service.training;
 import com.querydsl.core.types.Predicate;
 import cz.muni.ics.kypo.training.adaptive.annotations.transactions.TransactionalWO;
 import cz.muni.ics.kypo.training.adaptive.domain.TRAcquisitionLock;
-import cz.muni.ics.kypo.training.adaptive.domain.UserRef;
+import cz.muni.ics.kypo.training.adaptive.domain.User;
 import cz.muni.ics.kypo.training.adaptive.domain.phase.*;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingDefinition;
 import cz.muni.ics.kypo.training.adaptive.domain.training.TrainingInstance;
@@ -316,11 +316,11 @@ public class TrainingRunService {
         TrainingRun newTrainingRun = new TrainingRun();
         newTrainingRun.setCurrentPhase(currentPhase);
 
-        Optional<UserRef> userRefOpt = participantRefRepository.findUserByUserRefId(participantRefId);
+        Optional<User> userRefOpt = participantRefRepository.findUserByUserRefId(participantRefId);
         if (userRefOpt.isPresent()) {
             newTrainingRun.setParticipantRef(userRefOpt.get());
         } else {
-            newTrainingRun.setParticipantRef(participantRefRepository.save(new UserRef(userManagementServiceApi.getLoggedInUserRefId())));
+            newTrainingRun.setParticipantRef(participantRefRepository.save(new User(userManagementServiceApi.getLoggedInUserRefId())));
         }
         newTrainingRun.setState(TRState.RUNNING);
         newTrainingRun.setTrainingInstance(trainingInstance);
diff --git a/src/main/resources/db/migration/V1__db_adaptive_trainings_schema.sql b/src/main/resources/db/migration/V1__db_adaptive_trainings_schema.sql
index 4067d6026c23e33fbf32992e2d9b40b231bcb5d1..34d3d1f62c06e1b7c0fed65f804e8c7eb695ec29 100644
--- a/src/main/resources/db/migration/V1__db_adaptive_trainings_schema.sql
+++ b/src/main/resources/db/migration/V1__db_adaptive_trainings_schema.sql
@@ -1,8 +1,8 @@
--- USER_REF
-create table user_ref (
-    id bigserial not null,
+-- USER
+create table "user" (
+    user_id bigserial not null,
     user_ref_id int8 not null,
-    primary key (id)
+    primary key (user_id)
 );
 
 -- TRAINING
@@ -19,12 +19,12 @@ create table training_definition (
     primary key (training_definition_id)
 );
 
-create table training_definition_user_ref (
+create table training_definition_user (
     training_definition_id int8 not null,
-    user_ref_id int8 not null,
-    primary key (training_definition_id, user_ref_id),
+    user_id int8 not null,
+    primary key (training_definition_id, user_id),
     foreign key (training_definition_id) references training_definition,
-    foreign key (user_ref_id) references user_ref
+    foreign key (user_id) references "user"
 );
 
 create table training_instance (
@@ -40,12 +40,12 @@ create table training_instance (
 
 );
 
-create table training_instance_user_ref (
+create table training_instance_user (
     training_instance_id int8 not null,
-    user_ref_id int8 not null,
-    primary key (training_instance_id, user_ref_id),
+    user_id int8 not null,
+    primary key (training_instance_id, user_id),
     foreign key (training_instance_id) references training_instance,
-    foreign key (user_ref_id) references user_ref
+    foreign key (user_id) references "user"
 
 );
 
@@ -60,13 +60,13 @@ create table training_run (
     state varchar(128) not null,
     current_phase_id int8 not null,
     current_task_id int8 null,
-    user_ref_id int8 not null,
+    user_id int8 not null,
     sandbox_instance_ref_id int8 null,
     training_instance_id int8 not null,
     previous_sandbox_instance_ref_id int8 null,
     primary key (training_instance_id),
     foreign key (training_instance_id) references training_instance,
-    foreign key (user_ref_id) references user_ref
+    foreign key (user_id) references "user"
 );
 
 -- PHASES
@@ -205,7 +205,7 @@ create table training_run_acquisition_lock (
     training_instance_id int8 not null,
     creation_time timestamp not null,
     primary key (training_run_acquisition_lock_id),
-    foreign key (participant_ref_id) references user_ref,
+    foreign key (participant_ref_id) references "user",
     foreign key (training_instance_id) references training_instance
 );
 
diff --git a/src/main/resources/db/migration/V2__db_adaptive_trainings_sequences.sql b/src/main/resources/db/migration/V2__db_adaptive_trainings_sequences.sql
index 09188e55d7f9136fe06ed636595b9c9fd8d9f2bc..74badbf022f80b566c539315bdb72d1aa5230be9 100644
--- a/src/main/resources/db/migration/V2__db_adaptive_trainings_sequences.sql
+++ b/src/main/resources/db/migration/V2__db_adaptive_trainings_sequences.sql
@@ -10,4 +10,4 @@ CREATE SEQUENCE training_instance_seq AS bigint INCREMENT 50 MINVALUE 1;
 CREATE SEQUENCE training_run_seq AS bigint INCREMENT 50 MINVALUE 1;
 CREATE SEQUENCE access_token_seq AS bigint INCREMENT 50 MINVALUE 1;
 CREATE SEQUENCE tr_acquisition_lock_seq AS bigint INCREMENT 50 MINVALUE 1;
-CREATE SEQUENCE user_ref_seq AS bigint INCREMENT 50 MINVALUE 1;
+CREATE SEQUENCE user_seq AS bigint INCREMENT 50 MINVALUE 1;