diff --git a/javadoc/NTNU/IDATT1002/ApplicationState.html b/javadoc/NTNU/IDATT1002/ApplicationState.html
index 85f7b415f710c8f90cfe68673f5b0afa0538a6d3..1006b124f54618236dcb8f18f6e253513f84d8ba 100644
--- a/javadoc/NTNU/IDATT1002/ApplicationState.html
+++ b/javadoc/NTNU/IDATT1002/ApplicationState.html
@@ -124,7 +124,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 <li>java.lang.Object</li>
 <li>
 <ul class="inheritance">
-<li>NTNU.IDATT1002.ApplicationState</li>
+<li>NTNU.IDATT1002.service.ApplicationState</li>
 </ul>
 </li>
 </ul>
diff --git a/src/main/java/NTNU/IDATT1002/controllers/CreateAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/CreateAlbum.java
index 4a063bc1739d25941bbeea3f943fdc8931e9a44c..99c28cf82df83c3a4864142fdfb4991e8a4e6629 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/CreateAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/CreateAlbum.java
@@ -1,12 +1,12 @@
 package NTNU.IDATT1002.controllers;
 
 import NTNU.IDATT1002.App;
-import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Album;
 import NTNU.IDATT1002.models.Image;
 import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.models.User;
 import NTNU.IDATT1002.service.AlbumService;
+import NTNU.IDATT1002.service.ApplicationState;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
diff --git a/src/main/java/NTNU/IDATT1002/controllers/Explore.java b/src/main/java/NTNU/IDATT1002/controllers/Explore.java
index 5405b0ccf5ce3232bd898c22bed83d9e7f72757f..2fd1250849ba2b566e2a0b0e6f9374b86bd5aa84 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Explore.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Explore.java
@@ -1,7 +1,6 @@
 package NTNU.IDATT1002.controllers;
 
 import NTNU.IDATT1002.App;
-import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
@@ -13,7 +12,6 @@ import javafx.scene.Node;
 import javafx.scene.control.Button;
 import javafx.scene.control.ScrollPane;
 import javafx.scene.control.TextField;
-import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.GridPane;
@@ -23,10 +21,8 @@ import javafx.scene.text.Text;
 
 import java.io.IOException;
 import java.net.URL;
-import java.util.Arrays;
 import java.util.List;
 import java.util.ResourceBundle;
-import java.util.stream.Collectors;
 
 /**
  * Controls the buttons and changeable elements on explore.fxml,
diff --git a/src/main/java/NTNU/IDATT1002/controllers/Login.java b/src/main/java/NTNU/IDATT1002/controllers/Login.java
index 908647d126ccd176d337fb80729a0bb130560992..a55844d4897828f057a45449bf6ddfdfa63dc8ed 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Login.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Login.java
@@ -3,7 +3,6 @@ package NTNU.IDATT1002.controllers;
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.service.UserService;
 import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
 import javafx.scene.control.Button;
 import javafx.scene.control.PasswordField;
 import javafx.scene.control.TextField;
@@ -11,7 +10,6 @@ import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
 import javafx.scene.text.Text;
 
-
 import javax.persistence.EntityManager;
 import java.io.IOException;
 
diff --git a/src/main/java/NTNU/IDATT1002/controllers/Search.java b/src/main/java/NTNU/IDATT1002/controllers/Search.java
index c64c9813dc5c2e2a789564a0ec7237576aabb432..35157e867c46eef2f6faac6a89da35374c50dd37 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Search.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Search.java
@@ -1,8 +1,6 @@
 package NTNU.IDATT1002.controllers;
 
 import NTNU.IDATT1002.App;
-import NTNU.IDATT1002.models.Image;
-import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
@@ -23,19 +21,10 @@ import javafx.scene.layout.VBox;
 import javafx.scene.text.Font;
 import javafx.scene.text.Text;
 
-import javax.persistence.*;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaDelete;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.CriteriaUpdate;
-import javax.persistence.metamodel.Metamodel;
 import java.io.IOException;
 import java.net.URL;
-import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 import java.util.ResourceBundle;
-import java.util.stream.Collectors;
 
 
 /**
diff --git a/src/main/java/NTNU/IDATT1002/controllers/SignUp.java b/src/main/java/NTNU/IDATT1002/controllers/SignUp.java
index 7dc707db60b62716d423fc52ce84210c8ce3c9da..5e20b1d3be6001a44c8e5575fb3a596d582c1437 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/SignUp.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/SignUp.java
@@ -1,22 +1,22 @@
 package NTNU.IDATT1002.controllers;
 
-import java.io.IOException;
-import java.time.Instant;
-import java.time.LocalDate;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Date;
-
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.service.UserService;
-import java.util.regex.Pattern;
 import javafx.event.ActionEvent;
 import javafx.scene.control.Button;
 import javafx.scene.control.DatePicker;
 import javafx.scene.control.PasswordField;
 import javafx.scene.control.TextField;
 import javafx.scene.layout.GridPane;
+
 import javax.persistence.EntityManager;
+import java.io.IOException;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.regex.Pattern;
 
 /**
  * Controls the buttons and changeable elements on signup.fxml,
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index 8d471ca10cfe1ac9c3ed8fb96fb97a5d44f085e6..459d20837f8b51aab14f402a3ea045d963df8bb5 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -1,10 +1,10 @@
 package NTNU.IDATT1002.controllers;
 
 import NTNU.IDATT1002.App;
-import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Album;
 import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.AlbumService;
+import NTNU.IDATT1002.service.ApplicationState;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.MetaDataExtractor;
@@ -16,7 +16,10 @@ import javafx.geometry.Insets;
 import javafx.geometry.Pos;
 import javafx.scene.Node;
 import javafx.scene.Parent;
-import javafx.scene.control.*;
+import javafx.scene.control.Alert;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextArea;
+import javafx.scene.control.TextField;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
@@ -25,14 +28,16 @@ import javafx.scene.layout.VBox;
 import javafx.scene.text.Font;
 import javafx.scene.text.FontWeight;
 import javafx.scene.text.Text;
-
 import org.controlsfx.control.CheckComboBox;
 
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.ResourceBundle;
 import java.util.stream.Collectors;
 
 /**
diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index c099421e68a12dbe526e8c404a89f0b275aad062..75c88caeb3a36b3ead5fa85ba01892b3dcd7ad6c 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -7,11 +7,6 @@ import NTNU.IDATT1002.service.AlbumDocument;
 import NTNU.IDATT1002.service.AlbumService;
 import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.*;
-import java.util.logging.Logger;
 import javafx.application.HostServices;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
@@ -29,17 +24,15 @@ import javafx.scene.layout.VBox;
 import javafx.scene.text.Font;
 import javafx.scene.text.FontWeight;
 import javafx.scene.text.Text;
-import javax.persistence.EntityManager;
-import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.util.List;
 import java.util.Optional;
 import java.util.ResourceBundle;
 import java.util.stream.Collectors;
-import org.slf4j.LoggerFactory;
 
 /**
  * Controls the buttons and changeable elements on view_album.fxml,
diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewPicture.java b/src/main/java/NTNU/IDATT1002/controllers/ViewPicture.java
index 47f300f6a1b8becf031e675622238338a742ddd9..4751385e6738a6de383096f0730f15d59a7fab51 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewPicture.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewPicture.java
@@ -16,7 +16,6 @@ import javafx.scene.text.Text;
 import javax.persistence.EntityManager;
 import java.io.IOException;
 import java.net.URL;
-import java.util.Optional;
 import java.util.ResourceBundle;
 
 
diff --git a/src/main/java/NTNU/IDATT1002/filters/AlbumFilter.java b/src/main/java/NTNU/IDATT1002/filters/AlbumFilter.java
deleted file mode 100644
index fc98256744eb144f1b718bffb515903bb614fe71..0000000000000000000000000000000000000000
--- a/src/main/java/NTNU/IDATT1002/filters/AlbumFilter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package NTNU.IDATT1002.filters;
-
-import NTNU.IDATT1002.models.Album;
-
-import java.util.function.Predicate;
-
-
-/**
- * Album Filter. Class to filter an album by title, description and tag names.
- *
- * @author Eirik Steira
- * @version 1.0 22.03.20
- */
-public class AlbumFilter {
-
-    /**
-     * Chain the predicates and test the album by the given query.
-     *
-     * @param query the query to filter by
-     * @return predicate chaining the album filter components.
-     */
-    public static Predicate<Album> filter(String query) {
-        return filterByTitle(query)
-                .or(filterByDescription(query))
-                .or(filterByTags(query));
-    }
-
-    /**
-     * Filter an album by given title.
-     *
-     * @param title the title to query by
-     * @return predicate to apply.
-     */
-    private static Predicate<Album> filterByTitle(String title) {
-        return album -> album.getTitle().contains(title);
-    }
-
-    /**
-     * Filter an album by given description.
-     *
-     * @param description the description to query by
-     * @return predicate to apply.
-     */
-    private static Predicate<Album> filterByDescription(String description) {
-        return album -> album.getTitle().contains(description);
-    }
-
-    /**
-     * Filter an album by given tag name.
-     *
-     * @param tagName the tag name to query by
-     * @return predicate to apply.
-     */
-    private static Predicate<Album> filterByTags(String tagName) {
-        return album -> album.getTags().stream()
-                .anyMatch(tag -> tag.getName().equalsIgnoreCase(tagName));
-    }
-
-}
diff --git a/src/main/java/NTNU/IDATT1002/filters/ImageFilter.java b/src/main/java/NTNU/IDATT1002/filters/ImageFilter.java
deleted file mode 100644
index afb780140478ad4d724fc15c50ca1036e86396d5..0000000000000000000000000000000000000000
--- a/src/main/java/NTNU/IDATT1002/filters/ImageFilter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package NTNU.IDATT1002.filters;
-
-
-import NTNU.IDATT1002.models.Image;
-
-import java.util.function.Predicate;
-
-
-/**
- * Album Filter. Class to filter an album by title, description and tag names.
- *
- * @author Stian Mogen
- * @version 1.0 22.03.20
- */
-public class ImageFilter {
-
-    /**
-     * Image filter can filter an album by tags
-     * Uses method filterByTags
-     * @param query the query to filter by
-     * @return predicate chaining the album filter components.
-     */
-
-    public static Predicate<Image> filter(String query) {
-        return filterByTags(query);
-    }
-
-    /**
-     * Filters images based on tag
-     * @param tagName
-     * @return  predicate to apply
-     */
-
-
-    private static Predicate<Image> filterByTags(String tagName){
-        return image -> image.getTags().stream()
-                .anyMatch(tag -> tag.getName().equalsIgnoreCase(tagName));
-    }
-
-}
diff --git a/src/main/java/NTNU/IDATT1002/repository/ImageRepository.java b/src/main/java/NTNU/IDATT1002/repository/ImageRepository.java
index 07b854f64d616575c3cc2ddfe55e3db7979144ec..bdb25bddd9fdcbd494394494564834b3669b9c93 100644
--- a/src/main/java/NTNU/IDATT1002/repository/ImageRepository.java
+++ b/src/main/java/NTNU/IDATT1002/repository/ImageRepository.java
@@ -1,11 +1,8 @@
 package NTNU.IDATT1002.repository;
 
-import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.models.Image;
 
-
 import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
 import java.util.List;
 
 
diff --git a/src/main/java/NTNU/IDATT1002/ApplicationState.java b/src/main/java/NTNU/IDATT1002/service/ApplicationState.java
similarity index 95%
rename from src/main/java/NTNU/IDATT1002/ApplicationState.java
rename to src/main/java/NTNU/IDATT1002/service/ApplicationState.java
index 640517cb58ddd22edd63dc4ff65cbe8d553d4e67..285fcba4af38d46edaa8f07b7188899fa0c98725 100644
--- a/src/main/java/NTNU/IDATT1002/ApplicationState.java
+++ b/src/main/java/NTNU/IDATT1002/service/ApplicationState.java
@@ -1,6 +1,7 @@
-package NTNU.IDATT1002;
+package NTNU.IDATT1002.service;
 
 
+import NTNU.IDATT1002.Config;
 import NTNU.IDATT1002.models.User;
 import NTNU.IDATT1002.repository.UserRepository;
 
diff --git a/src/main/java/NTNU/IDATT1002/service/ImageService.java b/src/main/java/NTNU/IDATT1002/service/ImageService.java
index 93bb9de2e764979827cb43cbe2c197b10126a105..e9d6113ebded6b4925a641bcc4a724b041c9a555 100644
--- a/src/main/java/NTNU/IDATT1002/service/ImageService.java
+++ b/src/main/java/NTNU/IDATT1002/service/ImageService.java
@@ -1,6 +1,5 @@
 package NTNU.IDATT1002.service;
 
-import NTNU.IDATT1002.filters.ImageFilter;
 import NTNU.IDATT1002.models.*;
 import NTNU.IDATT1002.repository.ImageRepository;
 import NTNU.IDATT1002.utils.ImageUtil;
@@ -84,21 +83,6 @@ public class ImageService {
         return imageRepository.findAll();
     }
 
-    /**
-     * Search all images by tags specified in {@link ImageFilter#filter(String)}.
-     *
-     * @param query the query to filter by
-     * @return list of images matching the query
-     */
-
-    //This search method is for futureproofing, when we will search using additional parameters than just tags
-    public List<Image> searchImages(String query) {
-        List<Image> allImages = imageRepository.findAll();
-        return allImages.stream()
-                .filter(ImageFilter.filter(query))
-                .collect(Collectors.toList());
-    }
-
     public Optional<Image> findById(Long id){
         return imageRepository.findById(id);
     }
diff --git a/src/main/java/NTNU/IDATT1002/service/PdfDocument.java b/src/main/java/NTNU/IDATT1002/service/PdfDocument.java
index 8d012e0a1ee990020753c64370488b976304a035..d9cd213f5c2dfbf8288c0c01ac85485e43a15ab1 100644
--- a/src/main/java/NTNU/IDATT1002/service/PdfDocument.java
+++ b/src/main/java/NTNU/IDATT1002/service/PdfDocument.java
@@ -1,17 +1,17 @@
 package NTNU.IDATT1002.service;
 
-import NTNU.IDATT1002.models.Image;
 import NTNU.IDATT1002.models.Album;
+import NTNU.IDATT1002.models.Image;
 import NTNU.IDATT1002.models.Metadata;
 import com.itextpdf.text.*;
 import com.itextpdf.text.pdf.PdfWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.Date;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 
 /**
diff --git a/src/main/java/NTNU/IDATT1002/service/UserService.java b/src/main/java/NTNU/IDATT1002/service/UserService.java
index 532eadd4368ae9db065f07621de10f74e82f2e4a..c7341527ddbf447e394cbb4777e2a7a76d3c0ee9 100644
--- a/src/main/java/NTNU/IDATT1002/service/UserService.java
+++ b/src/main/java/NTNU/IDATT1002/service/UserService.java
@@ -1,6 +1,5 @@
 package NTNU.IDATT1002.service;
 
-import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Login;
 import NTNU.IDATT1002.models.User;
 import NTNU.IDATT1002.repository.LoginRepository;
diff --git a/src/main/java/NTNU/IDATT1002/utils/Authentication.java b/src/main/java/NTNU/IDATT1002/utils/Authentication.java
index 311c9ea43b753ad151bb4504d18140f00864a6fb..e0ecf90772558eb8eca4805655e178405deb7636 100644
--- a/src/main/java/NTNU/IDATT1002/utils/Authentication.java
+++ b/src/main/java/NTNU/IDATT1002/utils/Authentication.java
@@ -1,11 +1,9 @@
 package NTNU.IDATT1002.utils;
 
-import javax.xml.bind.DatatypeConverter;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Random;
 
 /**
diff --git a/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java b/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
index 97c25beed5656008bb5bb250f9ad6cb5aa16d18f..9d51ca8be7b3ad1e7342d396d18faf6532f857d1 100644
--- a/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
+++ b/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
@@ -1,6 +1,5 @@
 package NTNU.IDATT1002.utils;
 
-import NTNU.IDATT1002.controllers.ExploreAlbums;
 import NTNU.IDATT1002.models.GeoLocation;
 import NTNU.IDATT1002.repository.GeoLocatioRepository;
 import com.drew.imaging.ImageMetadataReader;
@@ -11,17 +10,16 @@ import com.drew.metadata.Tag;
 import com.drew.metadata.exif.ExifIFD0Directory;
 import com.drew.metadata.exif.ExifSubIFDDirectory;
 import com.drew.metadata.exif.GpsDirectory;
-
 import com.drew.metadata.file.FileSystemDirectory;
 import com.drew.metadata.file.FileTypeDirectory;
 import com.drew.metadata.iptc.IptcDirectory;
-
 import com.drew.metadata.jpeg.JpegDirectory;
-import java.io.File;
-import java.io.IOException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.io.IOException;
+
 
 /**
  * Class MetaDataExtractor. Extracts metadata and geolocation and histogram from it.