diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/controller/TrivioController.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/controller/TrivioController.java
index a844389c154dee9e801b0559d61e119066bff0a5..7da5006d2eea79f9e16225d1a36b8a29221e5f79 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/controller/TrivioController.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/controller/TrivioController.java
@@ -352,8 +352,8 @@ public class TrivioController {
     try {
       long userId = Long.parseLong(jwtService.extractSubjectFromHeader(token));
       Trivio trivio = trivioService.getTrivioById(trivioId);
-      if (userId == trivio.getUser().getId()) {
-        trivioService.removeUserFromTrivio(trivioId, username);
+      if(userId == trivio.getUser().getId()){
+        trivioService.removeUserFromTrivioEditorList(trivioId, username);
         return ResponseEntity.ok("User removed!");
       }
       return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("User is not authorized to perform this action.");
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/AuthenticationService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/AuthenticationService.java
index 6bc0088d5cabeee93a148a6bb13ec77485249b59..f669d2a5cb76ebd8ae5e1d55e93e876a19b3987d 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/AuthenticationService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/AuthenticationService.java
@@ -18,6 +18,15 @@ public class AuthenticationService {
     this.passwordEncoder = passwordEncoder;
   }
 
+  /**
+   * Method to authenticate a user and its login-request. The method checks the credentials in the
+   * login request and authenticate that the user-credentials are related to an exist the user repository.
+   * The method returns false as long as one of the credentials do not exist or is related to the same user as
+   * the other credentials.
+   *
+   * @param loginRequest the abstracted collection of user-credentials in a login-request (password and email).
+   * @return true or false based on if a user exist with all the parameters in the login-request.
+   */
   public boolean authenticateUser(LoginRequest loginRequest) {
     //if user doesn't exist return false
     if(!userService.checkIfUsernameIsPresent(loginRequest.getUsername())){
@@ -28,6 +37,14 @@ public class AuthenticationService {
     String encodedPassword = passwordEncoder.encode(user.getPassword());
     return passwordEncoder.matches(loginRequest.getPassword(), encodedPassword);
   }
+
+  /**
+   * Method to check if credentials in a signup-request exist. The method checks they exist in the
+   * user repository. The method return true as long as a one of the credentials exist.
+   *
+   * @param signUpRequest the abstracted collection of user-credentials in a signup-request (email and username)
+   * @return true or false depending on if the credentials exist.
+   */
   public boolean credentialsExists(SignUpRequest signUpRequest){
     if(userService.checkIfUsernameIsPresent(signUpRequest.getUsername())){
       return true;
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/JWTService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/JWTService.java
index e3bc083412b3b8e539195eb3a3210e709ca2ce40..fbb8b8f9c64c2f3d6bd3bd490a8bb261c8268d3d 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/JWTService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/JWTService.java
@@ -28,14 +28,24 @@ public class JWTService {
   private String SECRET;
 
 
+  /**
+   * Method to get signing key by decoding the secret key with Base64 encoding.
+   *
+   * @return the signing key from the decoded secret key.
+   */
   private SecretKey getSigningKey() {
     byte[] keyBytes = Base64.getDecoder().decode(this.SECRET.getBytes(StandardCharsets.UTF_8));
     return Keys.hmacShaKeyFor(keyBytes);
   }
 
+  /**
+   * Method to generate and build a token for a user. The method
+   * includes user as the subject of the token, and authenticate the token using the signing key.
+   *
+   * @param id the user-id for the user of the token.
+   * @return the generated token signed with the signing key.
+   */
   public String generateToken(String id){
-
-    logger.info(SECRET);
     return Jwts.builder()
         .subject(id)
         .issuer("IDATT2105GROUP5")
@@ -44,6 +54,13 @@ public class JWTService {
         .signWith(getSigningKey())
         .compact();
   }
+
+  /**
+   * Method to parse token into claims.
+   *
+   * @param token the token to parse.
+   * @return the claims from the parsed token.
+   */
   public Jws<Claims> parseToken(String token) {
     return Jwts.parser()
         .verifyWith(getSigningKey())
@@ -51,17 +68,45 @@ public class JWTService {
         .parseSignedClaims(token);
   }
 
+  /**
+   * Method to extract claims and get the payload from a token.
+   *
+   * @param token the token tro extract the claims from.
+   * @return the claims, payload from the token.
+   */
   public Claims extractClaims(String token) {
     return parseToken(token).getPayload();
   }
 
+  /**
+   * Method to extract the subject from claims, and identify the user from a token.
+   *
+   * @param token the token with the subject.
+   * @return the user-id for the user as a string.
+   */
   public String extractSubject(String token) {
     return extractClaims(token).getSubject();
   }
+
+  /**
+   * Method to validate an Authorization header bearing a token. This method
+   * ensures that the format is correct and that the header is not empty.
+   *
+   * @param header the authentication header to validate.
+   * @return true or false based on the validation of the header.
+   */
   public boolean checkValidHeader(String header){
     return header != null && header.startsWith("Bearer ");
   }
 
+  /**
+   * Collective method to extract the subject directly from an Authorization header. This
+   * method includes checking if the header is valid and extracting the subject, user from the
+   * token in the header.
+   *
+   * @param header the header to extract the subject from.
+   * @return the subject as a string. In this case the user-id as a string.
+   */
   public String extractSubjectFromHeader(String header){
     if(!checkValidHeader(header)){
       throw new IllegalArgumentException("Header is not valid!");
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/MessageService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/MessageService.java
index 6fc060ee49d284a17347d2238d93f12423a5c2eb..4772646505f705d986ad433cae3ecb7476818d50 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/MessageService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/MessageService.java
@@ -16,10 +16,21 @@ public class MessageService {
         this.messageRepository = messageRepository;
     }
 
+    /**
+     * Method to create message and add it to the message repository,
+     *
+     * @param message the message to add to the repository.
+     * @return the status from the save method.
+     */
     public Message createMessage(Message message) {
         return messageRepository.save(message);
     }
 
+    /**
+     * Method to get all messages from the message repository.
+     *
+     * @return all messages as a list of messages from the repository.
+     */
     public List<Message> getAllMessages() {
         return messageRepository.findAll();
     }
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/QuestionService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/QuestionService.java
index f0d54ca9e8198b6bb89a8daa82797a3e3e4ea5b7..50bf3e46029fba3fdef6f3968b002f384c7bc614 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/QuestionService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/QuestionService.java
@@ -22,10 +22,22 @@ public class QuestionService {
     this.answerRepository = answerRepository;
   }
 
+  /**
+   * Method to add a question to the question repository.
+   *
+   * @param question the question to add to the repository.
+   */
   public void addQuestion(Question question) {
     questionRepository.save(question);
   }
 
+  /**
+   * Collective method to add a question with answers to the question repository,
+   * and answers to the answer repository.
+   *
+   * @param question the question to be added.
+   * @param answers the answers of the question to be added.
+   */
   @Transactional
   public void addQuestionWithAnswers(Question question, List<Answer> answers) {
     Question savedQuestion = questionRepository.save(question);
@@ -35,12 +47,26 @@ public class QuestionService {
     }
   }
 
+  /**
+   * Collective method to delete a question with its answers from both repositories. The method do
+   * first delete all answers related to the question, and then the question. This should be
+   * on-delete-cascade.
+   *
+   * @param question the question to be deleted (containing the answers).
+   * @param answers the answers to be deleted.
+   */
   @Transactional
   public void deleteQuestionWithAnswers(Question question, List<Answer> answers){
     answerRepository.deleteAll(answers);
     questionRepository.delete(question);
   }
 
+  /**
+   * Method to get all questions related to a trivio, with all their answers.
+   *
+   * @param trivioId the id of the trivio containing the questions with the answers.
+   * @return the questions with answers in a list.
+   */
   public List<QuestionWithAnswers> getQuestionsWithAnswersByTrivioId(Long trivioId) {
     List<Question> questions = questionRepository.findQuestionByTrivioId(trivioId);
 
@@ -59,6 +85,11 @@ public class QuestionService {
     return questionsWithAnswersByTrivioId;
   }
 
+  /**
+   * Method to get all questions from the questions repository.
+   *
+   * @return all questions from the repository in a list.
+   */
   public List<Question> getAllQuestions(){
     return questionRepository.findAll();
   }
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/ResultService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/ResultService.java
index e93bec5ff8c3a458fdd29305d447fb1e09d734b4..6cf3b15ec8849326506e1cef32d71689e459a0e5 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/ResultService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/ResultService.java
@@ -24,31 +24,64 @@ public class ResultService {
     this.trivioService = trivioService;
   }
 
+  /**
+   * Method to add a DTO-abstracted result to the result repository. The method converts the
+   * abstraction to the result-entity and adds it to the repository.
+   *
+   * @param resultDTO the DTO-abstracted result to be added to the repository.
+   */
   public void addResult(ResultDTO resultDTO){
-    // per nå, ingen unntakshåndtering legg til det senere.
     Result result = convertToEntity(resultDTO);
-    result.setPostedDate(new Date()); // Assign the current date/time
+    result.setPostedDate(new Date());
     resultRepository.save(result);
   }
 
-  //samme her!!
-  public Result getResultbyId(Long id){
+
+  /**
+   * Method to get a result by its result-id.
+   *
+   * @param id the result-id for the result.
+   * @return the result with the result-id.
+   */
+  public Result getResultById(Long id){
     if(resultRepository.findById(id).isPresent()) {
       return resultRepository.findById(id).get();
     }
     return null;
   }
 
+  /**
+   * Method to get results related to a user-id from the result repository.
+   * This method includes pagination.
+   *
+   * @param id the user-id for the user.
+   * @param pageable the page and max-number of results to retrieve.
+   * @return the method returns the chosen page with results related to the user-id.
+   */
   public Page<Result> getResultByUserId(Long id, Pageable pageable){
     return resultRepository.getResultsByUserId(id, pageable);
   }
 
+  /**
+   * Method to get results related to a user-id and trivio-title from the result repository.
+   * This method is used for result filtration and includes pagination.
+   *
+   * @param id the user-id for the user.
+   * @param title the title for the trivio.
+   * @param pageable the page and max-number of results to retrieve.
+   * @return the method returns the chosen page with results related to the user-id and trivio-title.
+   */
   public Page<Result> getResultByUserIdAndTitle(Long id, String title,Pageable pageable){
     return resultRepository.getResultsByUserIdAndTrivio_Title(id, title,pageable);
   }
 
 
-
+  /**
+   * Method to convert a result to a DTO-abstracted result containing the user, trivio and score relation.
+   *
+   * @param result the result to convert.
+   * @return the DTO-abstracted result.
+   */
   public ResultDTO convertToDTO(Result result){
     Long trivioId = result.getTrivio().getId();
     String username = result.getUser().getUsername();
@@ -56,6 +89,12 @@ public class ResultService {
     return new ResultDTO(username,score,trivioId);
   }
 
+  /**
+   * Method to covert a DTO-abstracted result to a result entity with the user, trivio and score.
+   *
+   * @param resultDTO the DTO-abstracted result.
+   * @return the result entity of the abstraction.
+   */
   public Result convertToEntity(ResultDTO resultDTO){
     User user = userService.getUserByUsername(resultDTO.getUsername());
     Trivio trivio = trivioService.getTrivioById(resultDTO.getTrivioId());
@@ -67,10 +106,21 @@ public class ResultService {
     return result;
   }
 
+  /**
+   * Method to get distinct trivio titles for a user from the result repository.
+   *
+   * @param userId the user-id for the user.
+   * @return the results as a list of string, distinct trivio titles in the repository.
+   */
   public List<String> getDistinctTrivioTitles(Long userId) {
     return resultRepository.findDistinctTrivioTitlesByUserId(userId);
   }
 
+  /**
+   * Method to get all results from the result repository.
+   *
+   * @return the results as a list of strings, all results from the repository.
+   */
   public List<Result> getAllResults(){
     return resultRepository.findAll();
   }
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioService.java
index cb3a352d4352d984bcb3a340588e0548708040e1..dfad43b8c57e9e1b4e8f4f79a341109e43a02a78 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioService.java
@@ -26,13 +26,9 @@ public class TrivioService {
   private final QuestionRepository questionRepository;
   private final AnswerRepository answerRepository;
   private final QuestionService questionService;
-
   private final UserService userService;
-
   private final JWTService jwtService;
 
-  private static final Logger logger = Logger.getLogger(TrivioService.class.getName());
-
   @Autowired
   public TrivioService(TrivioRepository trivioRepository, QuestionRepository questionRepository, QuestionService questionService,
                        AnswerRepository answerRepository, UserService userService, JWTService jwtService){
@@ -44,43 +40,91 @@ public class TrivioService {
     this.jwtService = jwtService;
   }
 
+  /**
+   * Method to get all trivios. This method does not implement filtration.
+   *
+   * @return the list of all public trivios.
+   */
   public List<Trivio> getAllTrivios(){
     return trivioRepository.findAll();
   }
+
+
+  /**
+   * Method to get all public trivios. This method does not implement filtration.
+   *
+   * @return the list of all the public trivios.
+   */
   public List<Trivio> getAllPublicTrivios() {
     return trivioRepository.findTrivioByVisibility("public");
   }
 
+  /**
+   * Method to get all public trivios that is not linked to a user, meaning that they are
+   * owned and created by other users. This method does not implement filtration.
+   *
+   * @param userId user-id for the user.
+   * @return the list of public trivios that is not linked to the user.
+   */
   public List<Trivio> getAllPublicTriviosFromOtherUsers(long userId) {
     return trivioRepository.findTrivioByVisibilityAndUserIdNot("public", userId);
   }
+
+  /**
+   * Method to get trivios by a user. This method does not implement filtration.
+   *
+   * @param userId the user-id of the user
+   * @return the list of trivios belonging to this user.
+   */
   public List<Trivio> getTriviosByUserId(Long userId){
     return trivioRepository.findTrivioByUserId(userId);
   }
 
-  public void deleteTrivio(Long id){
-    Trivio trivio = getTrivioById(id);
-    trivioRepository.delete(trivio);
-  }
-
+  /**
+   * Method to retrieve a trivio by its trivio-id.
+   *
+   * @param id the id of the trivio to retrieve.
+   * @return returning the trivio if present.
+   */
   public Trivio getTrivioById(Long id){
       return trivioRepository.findById(id).orElseThrow(() -> new TrivioNotFoundException(id));
   }
+
+  /**
+   * Method to retrieve a trivio by its title.
+   * @param title the title of the trivio.
+   * @return returning the trivio if  present.
+   */
   public Trivio getTrivioByTitle(String title){
-    if(trivioRepository.findTrivioByTitle(title).isPresent()){
-      return trivioRepository.findTrivioByTitle(title).get();
-    }
-    return null;
+    return trivioRepository.findTrivioByTitle(title).orElseThrow(()
+            -> new RuntimeException("Title do not exist in the repository"));
   }
+
+  /**
+   * Method to check if a user is the owner of a trivio.
+   *
+   * @param token the token that belong to the user.
+   * @param id the trivio-id of the trivio.
+   * @return true-false statement weather the user is the owner or not.
+   */
   public boolean checkIfUserIsOwner(String token, Long id){
-    Trivio trivio = getTrivioById(id);
-    long userId = Long.parseLong(jwtService.extractSubjectFromHeader(token));
-    if(userId == trivio.getUser().getId()){
-      return true;
-    } else throw new RuntimeException("The user is not authorized to modify the trivio");
+    try {
+      Trivio trivio = getTrivioById(id);
+      long userId = Long.parseLong(jwtService.extractSubjectFromHeader(token));
+        return userId == trivio.getUser().getId();
+    } catch (Exception e){
+      throw new RuntimeException(e.getMessage());
+    }
   }
 
 
+  /**
+   * Method to create a trivio with a user.
+   *
+   * @param trivioWithQAndA trivio with questions and answers.
+   * @param userId the user-id of the creator.
+   */
+  @Transactional
   public void createTrivio(TrivioWithQAndA trivioWithQAndA, Long userId){
     try {
       Trivio trivio = trivioWithQAndA.getTrivio();
@@ -104,36 +148,54 @@ public class TrivioService {
     }
   }
 
+  /**
+   * Method to edit a trivio. The method should ideally be more split up into multiple services.
+   * Se inline comments for more description of functionally.
+   *
+   * @param editedTrivioWithQAndA the trivio with questions and answers that contain the updated information.
+   * @param trivioId the trivio-id of the trivio to edit.
+   */
   @Transactional
   public void editTrivio(TrivioWithQAndA editedTrivioWithQAndA, long trivioId) {
     try {
       Trivio trivio = trivioRepository.findById(trivioId).orElseThrow(() -> new TrivioNotFoundException(trivioId));
       Trivio newTrivioInfo = editedTrivioWithQAndA.getTrivio();
 
-      trivio.setTitle(newTrivioInfo.getTitle());
-      trivio.setDescription(newTrivioInfo.getDescription());
-      trivio.setCategory(newTrivioInfo.getCategory());
-      trivio.setDifficulty(newTrivioInfo.getDifficulty());
-      trivio.setVisibility(newTrivioInfo.getVisibility());
-      trivio.setMultimedia_url(newTrivioInfo.getMultimedia_url());
+      //editing all the basic trivio information;
+      try {
+        trivio.setTitle(newTrivioInfo.getTitle());
+        trivio.setDescription(newTrivioInfo.getDescription());
+        trivio.setCategory(newTrivioInfo.getCategory());
+        trivio.setDifficulty(newTrivioInfo.getDifficulty());
+        trivio.setVisibility(newTrivioInfo.getVisibility());
+        trivio.setMultimedia_url(newTrivioInfo.getMultimedia_url());
+      } catch(Exception e){
+        throw new RuntimeException("Something went wrong when updating the trivio information: " + e.getMessage());
+      }
+
       List<QuestionWithAnswers> newQuestionsWithAnswers = editedTrivioWithQAndA.getQuestionsWithAnswers();
       List<QuestionWithAnswers> existingQuestionsWithAnswers = questionService.getQuestionsWithAnswersByTrivioId(trivioId);
 
+      //calculating the number of overlapping questions.
       int questionMinSize = Math.min(newQuestionsWithAnswers.size(), existingQuestionsWithAnswers.size());
 
+      //updating all overlapping questions in the new and old list of questions.
       for(int i=0; i < questionMinSize; i++) {
         QuestionWithAnswers newQuestionWithAnswers = newQuestionsWithAnswers.get(i);
         QuestionWithAnswers oldQuestionWithAnswers = existingQuestionsWithAnswers.get(i);
 
-
         oldQuestionWithAnswers.getQuestion().setQuestionType(newQuestionWithAnswers.getQuestion().questionType);
         oldQuestionWithAnswers.getQuestion().setQuestion(newQuestionWithAnswers.getQuestion().question);
         oldQuestionWithAnswers.getQuestion().setTags(newQuestionWithAnswers.getQuestion().tags);
         oldQuestionWithAnswers.getQuestion().setMedia(newQuestionWithAnswers.getQuestion().media);
+
         List<Answer> newAnswers = newQuestionWithAnswers.getAnswers();
         List<Answer> oldAnswers = oldQuestionWithAnswers.getAnswers();
 
+        //calculating the number of overlapping answers
         int answerMinSize = Math.min(oldAnswers.size(), newAnswers.size());
+
+        //updating all overlapping questions in the new and old list of answers.
         for(int j=0; j < answerMinSize; j++){
           Answer newAnswer = newAnswers.get(j);
           Answer oldAnswer = oldAnswers.get(j);
@@ -144,7 +206,7 @@ public class TrivioService {
           answerRepository.save(oldAnswer);
         }
 
-        //if the question is changed from true-false to multiple
+        //if the question is changed from true-false to multiple, then more answers need to be added.
         if(newAnswers.size() > oldAnswers.size()){
           for(int j = answerMinSize; j < newAnswers.size(); j++){
             Answer newAnswer = newAnswers.get(j);
@@ -153,7 +215,7 @@ public class TrivioService {
           }
         }
 
-        //if the question is changed from multiple to true-false
+        //if the question is changed from multiple to true-false, then some answers need to be removed.
         if(newAnswers.size() < oldAnswers.size()){
           for(int j = answerMinSize; j < oldAnswers.size(); j++){
             answerRepository.delete(oldAnswers.get(j));
@@ -162,7 +224,7 @@ public class TrivioService {
         questionRepository.save(oldQuestionWithAnswers.getQuestion());
       }
 
-      //if more questions are added to the trivio
+      //if the new question-list is longer than the old question-list, more questions are added to the trivio
       if(newQuestionsWithAnswers.size() > existingQuestionsWithAnswers.size()){
         for(int i = questionMinSize; i < newQuestionsWithAnswers.size(); i++){
           Question newQuestion = newQuestionsWithAnswers.get(i).getQuestion();
@@ -172,7 +234,7 @@ public class TrivioService {
         }
       }
 
-      //if some questions are removed from the trivio
+      //if the new question-list is shorter than the old question-list, some questions are removed from the trivio.
       if(newQuestionsWithAnswers.size() < existingQuestionsWithAnswers.size()){
         for(int i = questionMinSize; i < existingQuestionsWithAnswers.size(); i++){
           Question existingQuestion = existingQuestionsWithAnswers.get(i).getQuestion();
@@ -183,8 +245,21 @@ public class TrivioService {
 
       trivioRepository.save(trivio); // Save the updated trivio
     } catch (Exception e) {
-      // Handle the exception appropriately
-      e.printStackTrace(); // Log the exception stack trace
+      throw new RuntimeException(e.getMessage());
+    }
+  }
+
+  /**
+   * Method to delete a trivio from the trivio-repository.
+   *
+   * @param id the id of the trivio to delete.
+   */
+  public void deleteTrivio(Long id){
+    try {
+      Trivio trivio = getTrivioById(id);
+      trivioRepository.delete(trivio);
+    } catch (Exception e){
+      throw new RuntimeException(e.getMessage());
     }
   }
 
@@ -194,22 +269,50 @@ public class TrivioService {
     return trivio.getUsersThatCanEdit();
   }
 
+  /**
+   * Method to add a user to a trivios editor-list. This means that the user is able to
+   * edit the trivio, even though it do not belong to the user.
+   *
+   * @param trivioId the trivio-id of the trivio.
+   * @param username the username of the user to add to the trivios editor-list.
+   */
   public void addUserToTrivio(Long trivioId, String username) {
-    Trivio trivio = trivioRepository.findById(trivioId).orElseThrow(() -> new EntityNotFoundException("Trivio not found"));
-    User user = userService.getUserByUsername(username);
-    logger.info("I reached to addUserToTrivio");
-    logger.info(user.getUsername());
-    trivio.addUserThatCanEdit(user);
-    trivioRepository.save(trivio); // This will update the trivio and the join table
+    try {
+      Trivio trivio = getTrivioById(trivioId);
+      User user = userService.getUserByUsername(username);
+      trivio.addUserThatCanEdit(user);
+      trivioRepository.save(trivio); // This will update the trivio and the join table
+    } catch (Exception e){
+      throw new RuntimeException(e.getMessage());
+    }
   }
 
-  public void removeUserFromTrivio(Long trivioId, String username) {
-    Trivio trivio = trivioRepository.findById(trivioId).orElseThrow(() -> new EntityNotFoundException("Trivio not found"));
-    User user = userService.getUserByUsername(username);
-    trivio.removeUserThatCanEdit(user);
-    trivioRepository.save(trivio); // This will update the trivio and the join table
+  /**
+   * Method to remove a remove user from a trivios editor-list. This means that the user
+   * is no longer able to edit the previously shared trivio.
+   *
+   * @param trivioId the trivio-id of the trivio.
+   * @param username the username of the user to remove.
+   */
+  public void removeUserFromTrivioEditorList(Long trivioId, String username) {
+    try {
+      Trivio trivio = getTrivioById(trivioId);
+      User user = userService.getUserByUsername(username);
+      trivio.removeUserThatCanEdit(user);
+      trivioRepository.save(trivio); // This will update the trivio and the join table
+    } catch (Exception e){
+      throw new RuntimeException(e.getMessage());
+    }
   }
 
+  /**
+   * Method to check if a trivio is shared with a user. The method checks if the user exists
+   * in the list of users that can edit the trivio.
+   *
+   * @param trivio the trivio that is or is not shared with the user.
+   * @param userId the user-id of the user that can or cannot edit the trivio.
+   * @return true if the trivio is shared with the user, or false if not.
+   */
   public boolean isUserInListCanEdit(Trivio trivio, long userId) {
     List<User> usersThatCanEdit = trivio.getUsersThatCanEdit();
     if (usersThatCanEdit != null) {
@@ -222,6 +325,18 @@ public class TrivioService {
     return false;
   }
 
+  /**
+   * Method to retrieve public trivios that do not belong to a user. If any filter alternatives are added,
+   * then the method will retrieve the filtrated result from the repository. The method includes pagination. Filter methods
+   * are specified in the TrivioSpecification class.
+   *
+   * @param userId the user-id of the user that the public trivios do not belong to.
+   * @param category the category for filtration.
+   * @param difficulty the difficulty for filtration.
+   * @param tags the tags for filtration.
+   * @param pageable the page and max-number of trivios to retrieve.
+   * @return the method returns the chosen page with public trivios that do not belong to the user.
+   */
   public Page<Trivio> getFilteredPublicTriviosByOtherUsers(
           Long userId, String category, String difficulty,
           List<String> tags, String visibility, Pageable pageable) {
@@ -230,17 +345,17 @@ public class TrivioService {
 
     spec = spec.and(TrivioSpecifications.filterByVisibility(visibility));
 
-    //If no category is chosen
+    //If a category is chosen
     if (category != null) {
       spec = spec.and(TrivioSpecifications.filterByCategory(category));
     }
 
-    //If no difficulty is chosen
+    //If a difficulty is chosen
     if (difficulty != null) {
       spec = spec.and(TrivioSpecifications.filterByDifficulty(difficulty));
     }
 
-    //If no tags are chosen
+    //If a tags are chosen
     if (tags != null && !tags.isEmpty()) {
       spec = spec.and(TrivioSpecifications.filterByTags(tags));
     }
@@ -248,20 +363,32 @@ public class TrivioService {
     return trivioRepository.findAll(spec, pageable);
   }
 
+  /**
+   * Method to retrieve trivios that belong to a user from the trivio repository. If any filter alternatives are added,
+   * then the method will retrieve the filtrated result from the repository. The method includes pagination. Filter methods
+   * are specified in the TrivioSpecification class.
+   *
+   * @param userId the user-id of the user that the trivios belong to.
+   * @param category the category for filtration.
+   * @param difficulty the difficulty for filtration.
+   * @param tags the tags for filtration.
+   * @param pageable the page and max-number of trivios to retrieve.
+   * @return the method returns the chosen page with trivios that belong to the user.
+   */
   public Page<Trivio> getFilteredTriviosByUser(Long userId, String category, String difficulty, List<String> tags, Pageable pageable) {
     Specification<Trivio> spec = TrivioSpecifications.filterByUserId(userId);
 
-    //If no category is chosen
+    //If a category is chosen
     if (category != null) {
       spec = spec.and(TrivioSpecifications.filterByCategory(category));
     }
 
-    //If no difficulty is chosen
+    //If a difficulty is chosen
     if (difficulty != null) {
       spec = spec.and(TrivioSpecifications.filterByDifficulty(difficulty));
     }
 
-    //If no tags are chosen.
+    //If a tags are chosen.
     if (tags != null && !tags.isEmpty()) {
       spec = spec.and(TrivioSpecifications.filterByTags(tags));
     }
@@ -269,20 +396,32 @@ public class TrivioService {
     return trivioRepository.findAll(spec, pageable);
   }
 
+  /**
+   * Method to retrieve trivios that is shared with a user from the trivio repository. If any filter alternatives are added,
+   * then the method will retrieve the filtrated result from the repository. The method includes pagination. Filter methods are
+   * specified in the TrivioSpecification class.
+   *
+   * @param userId the user-id of the user that the trivios are shared with.
+   * @param category the category for filtration.
+   * @param difficulty the difficulty for filtration.
+   * @param tags the tags for filtration.
+   * @param pageable the page and max-number of trivios to retrieve.
+   * @return the method returns the chosen page with trivios that are shared with the user.
+   */
   public Page<Trivio> getFilteredSharedTriviosByUser(Long userId, String category, String difficulty, List<String> tags, Pageable pageable) {
     Specification<Trivio> spec = TrivioSpecifications.filterByUserInSharedList(userId);
 
-    //If no category is chosen
+    //If category is chosen, add filter method from trivio-specifications
     if (category != null) {
       spec = spec.and(TrivioSpecifications.filterByCategory(category));
     }
 
-    //If no difficulty is chosen
+    //If difficulty is chosen, add filter method from trivio-specifications
     if (difficulty != null) {
       spec = spec.and(TrivioSpecifications.filterByDifficulty(difficulty));
     }
 
-    //If no tags are chosen.
+    //If tags are chosen, add filter method from trivio-specifications
     if (tags != null && !tags.isEmpty()) {
       spec = spec.and(TrivioSpecifications.filterByTags(tags));
     }
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioSpecifications.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioSpecifications.java
index 3f9644981cca9ab43204965f933db7fa5ef6c16a..1053057f6a2247b0c9be55ecfdde75ebb44d440d 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioSpecifications.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/TrivioSpecifications.java
@@ -6,9 +6,14 @@ import ntnu.idatt2105.group44.trivioServer.model.Trivio;
 import org.springframework.data.jpa.domain.Specification;
 import java.util.List;
 
+
+/**
+ * Class containing trivio-specifications for retrieving more
+ * detailed and customized queries.
+ */
 public class TrivioSpecifications {
 
-    //Method to filter trivios by user-id
+    //Method to specify filter trivios by user-id
     public static Specification<Trivio> filterByUserId(Long userId) {
         return (root, query, criteriaBuilder) ->
                 criteriaBuilder.equal(root.get("user").get("id"), userId);
diff --git a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/UserService.java b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/UserService.java
index c7f1c4fa98804c607e723560a775fc4eab1f1b06..efa2cba6d9595d0ed543c114fbe3ac4024e8e857 100644
--- a/src/main/java/ntnu/idatt2105/group44/trivioServer/service/UserService.java
+++ b/src/main/java/ntnu/idatt2105/group44/trivioServer/service/UserService.java
@@ -25,20 +25,42 @@ public class UserService {
     this.userRepository = userRepository;
   }
 
+  /**
+   * Method to get a user by its user-id from the user repository.
+   *
+   * @param id the id of the user.
+   * @return the user from the repository or not-found exception if user is not found.
+   */
   public User getUserById(Long id){
     Optional<User> userOptional = userRepository.findById(id);
     return userOptional.orElseThrow(() -> new UserNotFoundException(id));
   }
 
+  /**
+   * Method to get a user by its username from the user repository.
+   *
+   * @param username the username of the user.
+   * @return the user from the repository or not-found exception if user is not found.
+   */
   public User getUserByUsername(String username){
     Optional<User> userOptional = userRepository.findUserByUsername(username);
     return userOptional.orElseThrow(() -> new UserNotFoundException(username));
   }
 
+  /**
+   * Method to get all users from the user repository.
+   *
+   * @return all users in the user repository.
+   */
   public List<User> getAllUsers(){
     return userRepository.findAll();
   }
 
+  /**
+   * Method to create a user from a signup-request.
+   *
+   * @param signUpRequest the signup-request containing user information.
+   */
   public void createUser(SignUpRequest signUpRequest){
     if(signUpRequest.getUsername() != null && signUpRequest.getEmail() != null && signUpRequest.getPassword() != null){
       User user = new User.Builder()
@@ -51,6 +73,13 @@ public class UserService {
     }
   }
 
+  /**
+   * Method to update an existing user with new information.
+   *
+   * @param username the new username.
+   * @param email the new email.
+   * @param userId the user-id for the user that is updated.
+   */
   @Transactional
   public void updateUser(String username, String email, Long userId){
     User user = getUserById(userId);
@@ -65,6 +94,13 @@ public class UserService {
   }
 
 
+  /**
+   * Method to check if a username exists in the user repository,
+   * and if not present, update a user with the username.
+   *
+   * @param newUsername the new username value.
+   * @param user the username of the user to be updated.
+   */
   private void checkAndUpdateUsername(String newUsername, User user) {
     if (checkIfUsernameIsPresent(newUsername)) {
       throw new UserAlreadyExistException("Username already exists!");
@@ -73,12 +109,26 @@ public class UserService {
     user.setUsername(newUsername);
   }
 
+  /**
+   * Method to check if an email exists in the user repository,
+   * and if not present, update a user with the username.
+   *
+   * @param newEmail the new email value.
+   * @param user the username of the user to be updated.
+   */
   private void checkAndUpdateEmail(String newEmail, User user) {
     if (checkIfEmailIsPresent(newEmail)) {
       throw new UserAlreadyExistException("Email is already taken!");
     }
     user.setEmail(newEmail);
   }
+
+  /**
+   * Method to update an existing user with a new password. The password cannot be blank.
+   *
+   * @param password the new password value.
+   * @param userId the user-id for the user to be updated.
+   */
   @Transactional
   public void updatePassword(String password, Long userId){
     User user = getUserById(userId);
@@ -87,16 +137,23 @@ public class UserService {
     }
     userRepository.save(user);
   }
-  //Validation of user should happen in the authentication service
-//  public boolean validateUser(String username, String password) {
-//    Optional<User> user = userRepository.findUserByUsername(username);
-//    return user.isPresent() && user.get().getPassword().equals(password);
-//  }
 
+  /**
+   * Method to check if a username is present in the user repository.
+   *
+   * @param name the username.
+   * @return true-false statement for if the username is present.
+   */
   public boolean checkIfUsernameIsPresent(String name){
     return userRepository.findUserByUsername(name).isPresent();
   }
 
+  /**
+   * Method to check if an email is present in the user repository,
+   *
+   * @param email the email
+   * @return true-false statement for if the email is present.
+   */
   public boolean checkIfEmailIsPresent(String email){
     return userRepository.findUserByEmail(email).isPresent();
   }
diff --git a/src/test/java/ntnu/idatt2105/group44/trivioServer/service/ResultServiceTest.java b/src/test/java/ntnu/idatt2105/group44/trivioServer/service/ResultServiceTest.java
index 29acfaa2f1e3227a98a541356e42cf0b1ce6fcfe..2428f7f8c3a0e149d57998f952e4c9d58c3fc8f1 100644
--- a/src/test/java/ntnu/idatt2105/group44/trivioServer/service/ResultServiceTest.java
+++ b/src/test/java/ntnu/idatt2105/group44/trivioServer/service/ResultServiceTest.java
@@ -55,7 +55,7 @@ class ResultServiceTest {
 
         when(resultRepository.findById(5L)).thenReturn(java.util.Optional.of(result));
 
-        Result foundResult = resultService.getResultbyId(5L);
+        Result foundResult = resultService.getResultById(5L);
 
         verify(resultRepository, times(2)).findById(5L);
 
@@ -66,7 +66,7 @@ class ResultServiceTest {
     void testGetResultByIdReturnNull() {
         when(resultRepository.findById(5L)).thenReturn(java.util.Optional.empty());
 
-        Result foundResult = resultService.getResultbyId(5L);
+        Result foundResult = resultService.getResultById(5L);
 
         verify(resultRepository, times(1)).findById(5L);