diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 850cc48a9dc1114b62ae00536f228d46a36e457f..5df00e9b58f37c2c418b25b1f4093aba1d1cab8a 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -3,8 +3,10 @@ package NTNU.IDATT1002.controllers;
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.ApplicationState;
 
+import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.ImageService;
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import javafx.event.ActionEvent;
@@ -16,6 +18,7 @@ import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
 
+import javax.persistence.Table;
 import java.io.IOException;
 import java.net.URL;
 import java.util.ResourceBundle;
@@ -137,7 +140,8 @@ public class UploadedSingle implements Initializable {
     applicationState = new ApplicationState();
     List<File> list = App.ex.getUploadedFiles();
     File fil = list.get(0);
-    imageService.createImage(applicationState.getCurrentUser(), fil);
+    ArrayList<Tag> tags = new ArrayList<>();
+    imageService.createImage(applicationState.getCurrentUser(), fil, tags);
    /* list.stream().forEach(x -> {
       image = imageService.createImage(applicationState.getCurrentUser(), x).get();
       List tags = tagStringSplit(photo_tag);
diff --git a/src/main/java/NTNU/IDATT1002/models/Image.java b/src/main/java/NTNU/IDATT1002/models/Image.java
index 676b4cdca79f712c4317d6df76372ac33f4c0478..3fe27d5dda8bda7ea80a82565d30c2c424a0dbf7 100644
--- a/src/main/java/NTNU/IDATT1002/models/Image.java
+++ b/src/main/java/NTNU/IDATT1002/models/Image.java
@@ -91,6 +91,10 @@ public class Image {
     return imageAlbums;
   }
 
+  public void addTags(ArrayList<Tag> tags) {
+    tags.addAll(tags);
+  }
+
   public void addTag(Tag tag){
       tags.add(tag);
   }
diff --git a/src/main/java/NTNU/IDATT1002/repository/GeoLocatioRepository.java b/src/main/java/NTNU/IDATT1002/repository/GeoLocatioRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5962b0e60c659a92b6c2bcc0b604671c0ad6cfc
--- /dev/null
+++ b/src/main/java/NTNU/IDATT1002/repository/GeoLocatioRepository.java
@@ -0,0 +1,18 @@
+package NTNU.IDATT1002.repository;
+
+import NTNU.IDATT1002.models.GeoLocation;
+
+import javax.persistence.EntityManager;
+
+public class GeoLocatioRepository extends GenericRepository<GeoLocation, Long> {
+
+    /**
+     * Constructor to inject {@link EntityManager} dependency.
+     *
+     * @param entityManager the entity manager to utilize
+     */
+    public GeoLocatioRepository(EntityManager entityManager) {
+        super(entityManager);
+        setClassType(GeoLocation.class);
+    }
+}
diff --git a/src/main/java/NTNU/IDATT1002/repository/HistorgramRepository.java b/src/main/java/NTNU/IDATT1002/repository/HistorgramRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..97c009d94a4920f2466a0ac8a6c7803d9fa76dae
--- /dev/null
+++ b/src/main/java/NTNU/IDATT1002/repository/HistorgramRepository.java
@@ -0,0 +1,18 @@
+package NTNU.IDATT1002.repository;
+
+import NTNU.IDATT1002.models.Histogram;
+
+import javax.persistence.EntityManager;
+
+public class HistorgramRepository extends GenericRepository<Histogram, Long> {
+
+    /**
+     * Constructor to inject {@link EntityManager} dependency.
+     *
+     * @param entityManager the entity manager to utilize
+     */
+    public HistorgramRepository(EntityManager entityManager) {
+        super(entityManager);
+        setClassType(Histogram.class);
+    }
+}
diff --git a/src/main/java/NTNU/IDATT1002/service/ImageService.java b/src/main/java/NTNU/IDATT1002/service/ImageService.java
index 3c18a9fd0a4019fad05035998b1d56e3859ddae5..b7089fd5d216e10371b6fcdf9af895a05d140735 100644
--- a/src/main/java/NTNU/IDATT1002/service/ImageService.java
+++ b/src/main/java/NTNU/IDATT1002/service/ImageService.java
@@ -14,6 +14,7 @@ import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
 import java.io.File;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -49,10 +50,10 @@ public class ImageService {
      * @param file the file uploaded
      * @return Optional containing the saved image
      */
-    public Optional<Image> createImage(User user, File file) {
+    public Optional<Image> createImage(User user, File file, ArrayList<Tag> tags) {
         Image image = new Image();
         byte[] bFile = ImageUtil.convertToBytes(file.getPath());
-        Metadata metadata = MetaDataExtractor.assembleMetaData(file);
+        Metadata metadata = MetaDataExtractor.assembleMetaData(file, image);
         metadata = metadataRepository.save(metadata).orElse(null);
 
         //TODO: Unsure what to do with imageAlbum
@@ -61,6 +62,7 @@ public class ImageService {
         image.setUser(null);
         image.setMetadata(metadata);
         image.setPath(file.getPath());
+        //image.addTags(tags);
         return imageRepository.save(image);
     }
 
diff --git a/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java b/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
index aade3cb76f3c56214127a2474e432a69b741fd66..591f8e20e150630952ae094e01ea70d7b6b8f5c7 100644
--- a/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
+++ b/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
@@ -47,6 +47,7 @@ public class MetaDataExtractor {
 
             geoLocation.setLatitude(latitude);
             geoLocation.setLongitude(longitude);
+
         } catch (NullPointerException e) {
             e.printStackTrace();
         }
@@ -67,11 +68,14 @@ public class MetaDataExtractor {
         return histogram;
     }
 
-    public static NTNU.IDATT1002.models.Metadata assembleMetaData(File file) {
+    public static NTNU.IDATT1002.models.Metadata assembleMetaData(File file, Image image) {
+
         NTNU.IDATT1002.models.Metadata metadata = new NTNU.IDATT1002.models.Metadata();
         try {
+            metadata.setImage(image);
             metadata.setGeoLocation(getGPS(file));
             metadata.setHistogram(getHistorgram(file));
+
         }
         catch (Exception e) {
             e.printStackTrace();