diff --git a/src/de/bricked/game/levels/LevelPackHandler.java b/src/de/bricked/game/levels/LevelPackHandler.java
index dd39ae3e37a387e6c25eddb2b82efb2ead375e56..6e2be4b21925133715f4144409340b2979923ccc 100644
--- a/src/de/bricked/game/levels/LevelPackHandler.java
+++ b/src/de/bricked/game/levels/LevelPackHandler.java
@@ -1,12 +1,18 @@
 package de.bricked.game.levels;
 
-import java.io.File;
+import de.bricked.utils.FileUtils;
+import tools.PathUtils;
+
+import java.io.*;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Comparator;
 
 public class LevelPackHandler
 {
-    private static String directory = "src/de/bricked/resources/levelpacks/";
+    private static final String directory = "/de/bricked/resources/levelpacks/";
     private static final String DEFAULT_PACKAGE_NAME = "default";
 
     private static ArrayList<LevelPack> sort(ArrayList<LevelPack> levelPackArrayList)
@@ -40,18 +46,60 @@ public class LevelPackHandler
 	public static ArrayList<LevelPack> getAllLevelPacks()
     {
         ArrayList<LevelPack> levelPacks = new ArrayList<>();
-        for(File currentFile : getListOfFiles())
+        for(String currentFileContent : getFileContent())
         {
-            LevelPackReader levelPackReader = new LevelPackReader(currentFile.getName());
-            levelPacks.add(levelPackReader.read());
+            LevelPackParser levelPackParser = new LevelPackParser(currentFileContent);
+            levelPacks.add(levelPackParser.read());
         }
 
         return sort(levelPacks);
     }
 
-    private static File[] getListOfFiles()
+    private static ArrayList<String> getFilesFromJar()
+    {
+        ArrayList<String> stringArrayList = new ArrayList<>();
+        try
+        {
+            String text = FileUtils.getFileContentFromJar(directory+"files.txt");
+            String[] filenamesArray = text.split(" ");
+            for(String filename : filenamesArray)
+            {
+                stringArrayList.add(FileUtils.getFileContentFromJar(directory + filename));
+            }
+
+        }
+        catch (Exception e)
+        {
+            System.out.println(e);
+        }
+        return stringArrayList;
+    }
+
+    private static ArrayList<String> getFileContentFromUserDir()
+    {
+        ArrayList<String> stringContent = new ArrayList<>();
+        File folder = new File(PathUtils.getOSindependentPath().toFile(), "deadspaghetti/bricked/levelpacks/");
+        ArrayList<File> fileArrayList = new ArrayList<>(Arrays.asList(folder.listFiles()));
+        for(File file : fileArrayList)
+        {
+            try
+            {
+                stringContent.add(new String(Files.readAllBytes(FileSystems.getDefault().getPath(file.getPath()))));
+
+            }
+            catch (IOException e)
+            {
+                e.printStackTrace();
+            }
+        }
+        return stringContent;
+    }
+
+    private static ArrayList<String> getFileContent()
     {
-        File folder = new File(directory);
-        return folder.listFiles();
+        ArrayList<String> fileArrayList = new ArrayList<>();
+        fileArrayList.addAll(getFileContentFromUserDir());
+        fileArrayList.addAll(getFilesFromJar());
+        return fileArrayList;
     }
 }
diff --git a/src/de/bricked/game/levels/LevelPackReader.java b/src/de/bricked/game/levels/LevelPackParser.java
similarity index 81%
rename from src/de/bricked/game/levels/LevelPackReader.java
rename to src/de/bricked/game/levels/LevelPackParser.java
index 92399a972aa0c7e81801e6db17dce8d0de4aed2e..324508766bfb2ca53b63e9ed085ff9b9cfe73bf8 100644
--- a/src/de/bricked/game/levels/LevelPackReader.java
+++ b/src/de/bricked/game/levels/LevelPackParser.java
@@ -4,27 +4,20 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
-
 import de.bricked.game.paddle.PaddleSize;
 import logger.LogLevel;
 import logger.Logger;
-
-import java.io.File;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Comparator;
 
-public class LevelPackReader
+public class LevelPackParser
 {
 
-	private String filename;
-	private String directory;
+	private String fileContents;
 
-	public LevelPackReader(String filename)
+	public LevelPackParser(String fileContents)
 	{
-		this.directory = "src/de/bricked/resources/levelpacks/";
-		this.filename = filename;
+		this.fileContents = fileContents;
 	}
 
 	private ArrayList<Level> parseLevels(JsonArray levelPackArray)
@@ -82,8 +75,7 @@ public class LevelPackReader
 	{
 		try
 		{
-            String jsonContent = new String(Files.readAllBytes(FileSystems.getDefault().getPath(directory + filename)));
-			JsonObject root = new JsonParser().parse(jsonContent).getAsJsonObject();
+			JsonObject root = new JsonParser().parse(fileContents).getAsJsonObject();
 			String packageName = root.get("name").getAsString();
 			String packageAuthor = root.get("author").getAsString();
 			String packageVersion = root.get("version").getAsString();
diff --git a/src/de/bricked/resources/levelpacks/files.txt b/src/de/bricked/resources/levelpacks/files.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a3d1c01444c7423a1c0e5f8c02fa1dc05a6a9550
--- /dev/null
+++ b/src/de/bricked/resources/levelpacks/files.txt
@@ -0,0 +1 @@
+default.json Eimer.json
\ No newline at end of file
diff --git a/src/de/bricked/utils/FileUtils.java b/src/de/bricked/utils/FileUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..24e14d3bf1083481f0363ea686f1431a3815fb18
--- /dev/null
+++ b/src/de/bricked/utils/FileUtils.java
@@ -0,0 +1,39 @@
+package de.bricked.utils;
+
+
+import de.bricked.game.levels.LevelPackHandler;
+import logger.LogLevel;
+import logger.Logger;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class FileUtils
+{
+    public static String getFileContentFromJar(String path)
+    {
+        try
+        {
+            InputStream inputStream = FileUtils.class.getResourceAsStream(path);
+            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
+            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
+            String line = "";
+            StringBuilder text = new StringBuilder();
+
+            while (line != null)
+            {
+                line = bufferedReader.readLine();
+                if (line != null)
+                    text.append(line);
+            }
+            return text.toString();
+        }
+        catch (Exception e)
+        {
+            Logger.log(LogLevel.ERROR, Logger.exceptionToString(e));
+        }
+        return null;
+    }
+}