diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..e77d398c72b24fb5dd1643eff7d26c1c70faffab
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,12 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+charset = utf-8
+indent_style = tab
+indent_size = 4
+
+[*.yml]
+indent_style = space
+indent_size = 2
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..842380dae0463548dc0cbfb3e74636c57cdc0526
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,17 @@
+language: java
+
+dist: trusty
+
+cache:
+  directories:
+    - $HOME/.m2
+
+jdk:
+  - oraclejdk11
+  - openjdk11
+
+os:
+  - linux
+
+branches:
+  except: []
diff --git a/build.gradle b/build.gradle
index 265d280a1b52b87936bb8d1a5faf661298553fc5..b48488a34952496a6a5063df8fd898c7e1f6c3f5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,27 +1,17 @@
-buildscript {
-    repositories {
-        jcenter()
-    }
-
-    dependencies {
-        classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
-    }
+plugins {
+	id 'java'
+	id 'application'
 }
 
-// Apply the java plugin to add support for Java
-apply plugin: 'java'
-
-// Apply the application plugin to add support for building an application
-apply plugin: 'application'
-
-apply plugin: 'com.github.ben-manes.versions'
+sourceCompatibility = JavaVersion.VERSION_11
 
 repositories {
-    jcenter()
+	mavenCentral()
+	jcenter()
 }
 
 // Define the main class for the application
-mainClassName = 'App'
+mainClassName = 'de.thro.inf.prg3.a11.App'
 
 dependencies {
     /* Commons Lang3 */
@@ -32,9 +22,16 @@ dependencies {
     implementation "com.squareup.retrofit2:converter-gson:$retrofit2_version"
 
     /* JUnit 5 */
-    testImplementation("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}")
-    testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}")
-    testRuntime("org.junit.platform:junit-platform-launcher:${junitPlatformVersion}")
+	testCompile("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
+	testRuntime("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
+	testRuntime("org.junit.jupiter:junit-jupiter-params:${junitVersion}")
     testRuntime("org.apache.logging.log4j:log4j-core:${log4jVersion}")
     testRuntime("org.apache.logging.log4j:log4j-jul:${log4jVersion}")
-}
\ No newline at end of file
+}
+
+test {
+	useJUnitPlatform()
+	testLogging {
+		events "passed", "skipped", "failed"
+	}
+}
diff --git a/gradle.properties b/gradle.properties
index 0f59cd88c3f14b55737295c90017777b7ce12c1e..99199f279c092639266d6c1ff1b94d6250cea621 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,4 @@
-commons_lang_version=3.7
-retrofit2_version=2.3.0
-junitPlatformVersion = 1.1.0-M1
-junitJupiterVersion = 5.1.0-M1
-log4jVersion = 2.10.0
\ No newline at end of file
+commons_lang_version=3.8.1
+retrofit2_version=2.5.0
+log4jVersion = 2.11.1
+junitVersion=5.3.1
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 01b8bf6b1f99cad9213fc495b33ad5bbab8efd20..457aad0d98108420a977756b7145c93c8910b076 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 933b6473ce1ea83ca681969501e2c05453c313a1..6295dd776c08edd99de1b29fe9549e12509bb80d 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Thu Dec 13 17:32:22 CET 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip
diff --git a/gradlew b/gradlew
index cccdd3d517fc5249beaefa600691cf150f2fa3e6..af6708ff229fda75da4f7cc4da4747217bac4d53 100755
--- a/gradlew
+++ b/gradlew
@@ -28,7 +28,7 @@ APP_NAME="Gradle"
 APP_BASE_NAME=`basename "$0"`
 
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+DEFAULT_JVM_OPTS='"-Xmx64m"'
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
diff --git a/gradlew.bat b/gradlew.bat
index f9553162f122c71b34635112e717c3e733b5b212..6d57edc706c93465988754383a2d7ff353d4e79f 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
 @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
+set DEFAULT_JVM_OPTS="-Xmx64m"
 
 @rem Find java.exe
 if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/src/main/java/de/fhro/inf/prg3/a11/App.java b/src/main/java/de/thro/inf/prg3/a11/App.java
similarity index 96%
rename from src/main/java/de/fhro/inf/prg3/a11/App.java
rename to src/main/java/de/thro/inf/prg3/a11/App.java
index 59ef3edb02ebe31260afed03b6a065d50778134d..5091ba614c9d43b7ff84d5a0f5d40c80a8f3f256 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/App.java
+++ b/src/main/java/de/thro/inf/prg3/a11/App.java
@@ -1,7 +1,7 @@
-package de.fhro.inf.prg3.a11;
+package de.thro.inf.prg3.a11;
 
-import de.fhro.inf.prg3.a11.openmensa.OpenMensaAPI;
-import de.fhro.inf.prg3.a11.openmensa.OpenMensaAPIService;
+import de.thro.inf.prg3.a11.openmensa.OpenMensaAPI;
+import de.thro.inf.prg3.a11.openmensa.OpenMensaAPIService;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
diff --git a/src/main/java/de/fhro/inf/prg3/a11/MenuSelection.java b/src/main/java/de/thro/inf/prg3/a11/MenuSelection.java
similarity index 84%
rename from src/main/java/de/fhro/inf/prg3/a11/MenuSelection.java
rename to src/main/java/de/thro/inf/prg3/a11/MenuSelection.java
index 5d73375277f86a30c1174d05be318e4a2a5b1430..e6d988124824730bedc94639bd866e526e6db291 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/MenuSelection.java
+++ b/src/main/java/de/thro/inf/prg3/a11/MenuSelection.java
@@ -1,4 +1,4 @@
-package de.fhro.inf.prg3.a11;
+package de.thro.inf.prg3.a11;
 
 /**
  * @author Peter Kurfer
diff --git a/src/main/java/de/fhro/inf/prg3/a11/openmensa/OpenMensaAPI.java b/src/main/java/de/thro/inf/prg3/a11/openmensa/OpenMensaAPI.java
similarity index 90%
rename from src/main/java/de/fhro/inf/prg3/a11/openmensa/OpenMensaAPI.java
rename to src/main/java/de/thro/inf/prg3/a11/openmensa/OpenMensaAPI.java
index ba15e5485e5b415aa9b2efa9a98eff6b2a29bc5a..d3893746ac11f03ec1c348c3c427aa3420b9b437 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/openmensa/OpenMensaAPI.java
+++ b/src/main/java/de/thro/inf/prg3/a11/openmensa/OpenMensaAPI.java
@@ -1,8 +1,8 @@
-package de.fhro.inf.prg3.a11.openmensa;
+package de.thro.inf.prg3.a11.openmensa;
 
-import de.fhro.inf.prg3.a11.openmensa.model.Canteen;
-import de.fhro.inf.prg3.a11.openmensa.model.Meal;
-import de.fhro.inf.prg3.a11.openmensa.model.State;
+import de.thro.inf.prg3.a11.openmensa.model.Canteen;
+import de.thro.inf.prg3.a11.openmensa.model.Meal;
+import de.thro.inf.prg3.a11.openmensa.model.State;
 import retrofit2.Response;
 import retrofit2.http.GET;
 import retrofit2.http.Path;
diff --git a/src/main/java/de/fhro/inf/prg3/a11/openmensa/OpenMensaAPIService.java b/src/main/java/de/thro/inf/prg3/a11/openmensa/OpenMensaAPIService.java
similarity index 96%
rename from src/main/java/de/fhro/inf/prg3/a11/openmensa/OpenMensaAPIService.java
rename to src/main/java/de/thro/inf/prg3/a11/openmensa/OpenMensaAPIService.java
index 53e00b06ede5f6a3ed2db9692681671423b39105..b85303f8b33da5954767f8306441fbc2e0a05a09 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/openmensa/OpenMensaAPIService.java
+++ b/src/main/java/de/thro/inf/prg3/a11/openmensa/OpenMensaAPIService.java
@@ -1,4 +1,4 @@
-package de.fhro.inf.prg3.a11.openmensa;
+package de.thro.inf.prg3.a11.openmensa;
 
 import retrofit2.Retrofit;
 import retrofit2.converter.gson.GsonConverterFactory;
diff --git a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/Canteen.java b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/Canteen.java
similarity index 97%
rename from src/main/java/de/fhro/inf/prg3/a11/openmensa/model/Canteen.java
rename to src/main/java/de/thro/inf/prg3/a11/openmensa/model/Canteen.java
index fa8a9bebf9be9c8353c98cc41cb982e0ecb01844..55c9733bc0153f970a705414af6554e25dd1efeb 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/Canteen.java
+++ b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/Canteen.java
@@ -1,4 +1,4 @@
-package de.fhro.inf.prg3.a11.openmensa.model;
+package de.thro.inf.prg3.a11.openmensa.model;
 
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
diff --git a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/Meal.java b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/Meal.java
similarity index 97%
rename from src/main/java/de/fhro/inf/prg3/a11/openmensa/model/Meal.java
rename to src/main/java/de/thro/inf/prg3/a11/openmensa/model/Meal.java
index b55511c349a2e5f4f6a7072dc6a29ce1c1649251..62ec1ac35543095c0fe616e6143cb32979499a6d 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/Meal.java
+++ b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/Meal.java
@@ -1,4 +1,4 @@
-package de.fhro.inf.prg3.a11.openmensa.model;
+package de.thro.inf.prg3.a11.openmensa.model;
 
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
diff --git a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/PageInfo.java b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/PageInfo.java
similarity index 97%
rename from src/main/java/de/fhro/inf/prg3/a11/openmensa/model/PageInfo.java
rename to src/main/java/de/thro/inf/prg3/a11/openmensa/model/PageInfo.java
index e85a6f187e8bb99fef83db36a77856a40352e7bb..89106c36e34545655cb6630b3e43fa7b1cc717a7 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/PageInfo.java
+++ b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/PageInfo.java
@@ -1,10 +1,8 @@
-package de.fhro.inf.prg3.a11.openmensa.model;
+package de.thro.inf.prg3.a11.openmensa.model;
 
 import okhttp3.Headers;
 import retrofit2.Response;
 
-import java.util.function.Function;
-
 /**
  * Utility class to handle HTTP response header containing the pagination information
  * required to fetch all pages of an entity
diff --git a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/State.java b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/State.java
similarity index 96%
rename from src/main/java/de/fhro/inf/prg3/a11/openmensa/model/State.java
rename to src/main/java/de/thro/inf/prg3/a11/openmensa/model/State.java
index 352a84ba6e4616db1affe0ad194b23497d623498..9febe811b2cc4e653df1de2400ea4b43c463a1a0 100644
--- a/src/main/java/de/fhro/inf/prg3/a11/openmensa/model/State.java
+++ b/src/main/java/de/thro/inf/prg3/a11/openmensa/model/State.java
@@ -1,4 +1,4 @@
-package de.fhro.inf.prg3.a11.openmensa.model;
+package de.thro.inf.prg3.a11.openmensa.model;
 
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
diff --git a/src/test/java/de/fhro/inf/prg3/a11/tests/OpenMensaApiTests.java b/src/test/java/de/thro/inf/prg3/a11/tests/OpenMensaApiTests.java
similarity index 65%
rename from src/test/java/de/fhro/inf/prg3/a11/tests/OpenMensaApiTests.java
rename to src/test/java/de/thro/inf/prg3/a11/tests/OpenMensaApiTests.java
index e17b6c9b3708a9ddd47c222108287b906ced1681..d52e90d7d025cdf7d009d58f96e4c8ca12b36e4f 100644
--- a/src/test/java/de/fhro/inf/prg3/a11/tests/OpenMensaApiTests.java
+++ b/src/test/java/de/thro/inf/prg3/a11/tests/OpenMensaApiTests.java
@@ -1,17 +1,13 @@
-package de.fhro.inf.prg3.a11.tests;
+package de.thro.inf.prg3.a11.tests;
 
-import de.fhro.inf.prg3.a11.openmensa.OpenMensaAPI;
-import de.fhro.inf.prg3.a11.openmensa.OpenMensaAPIService;
-import de.fhro.inf.prg3.a11.openmensa.model.Canteen;
-import de.fhro.inf.prg3.a11.openmensa.model.PageInfo;
-import de.fhro.inf.prg3.a11.openmensa.model.State;
+import de.thro.inf.prg3.a11.openmensa.OpenMensaAPI;
+import de.thro.inf.prg3.a11.openmensa.OpenMensaAPIService;
+import de.thro.inf.prg3.a11.openmensa.model.PageInfo;
 import org.junit.jupiter.api.Test;
 import retrofit2.HttpException;
-import retrofit2.Response;
 
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
-import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.ExecutionException;
 
@@ -23,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 class OpenMensaApiTests {
 
-    private static final int FHRO_MENSA_ID = 229;
+    private static final int THRO_MENSA_ID = 229;
     private static final String OPEN_MENSA_DATE_FORMAT = "yyyy-MM-dd";
     private final SimpleDateFormat dateFormat;
     private final OpenMensaAPI openMensaAPI;
@@ -37,22 +33,22 @@ class OpenMensaApiTests {
 
     @Test
     void testGetFirstMensaPage() throws ExecutionException, InterruptedException {
-        Response<List<Canteen>> canteensResponse = openMensaAPI.getCanteens().get();
+        final var canteensResponse = openMensaAPI.getCanteens().get();
 
         assertNotNull(canteensResponse);
         assertNotNull(canteensResponse.body());
         assertNotEquals(0, canteensResponse.body().size());
 
-        for (Canteen c : canteensResponse.body()) {
+        for (var c : canteensResponse.body()) {
             System.out.println(c.getName());
         }
     }
 
     @Test
     void testExtractPageInfo() throws ExecutionException, InterruptedException {
-        Response<List<Canteen>> canteensResponse = openMensaAPI.getCanteens().get();
+        final var canteensResponse = openMensaAPI.getCanteens().get();
 
-        PageInfo pageInfo = PageInfo.extractFromResponse(canteensResponse);
+        final var pageInfo = PageInfo.extractFromResponse(canteensResponse);
 
         assertNotNull(pageInfo);
         assertEquals(canteensResponse.body().size(), pageInfo.getItemCountPerPage());
@@ -64,7 +60,7 @@ class OpenMensaApiTests {
     @Test
     void testGetCanteenState() throws InterruptedException {
         try {
-            State mensaState = openMensaAPI.getCanteenState(FHRO_MENSA_ID, dateFormat.format(calendar.getTime())).get();
+            final var mensaState = openMensaAPI.getCanteenState(THRO_MENSA_ID, dateFormat.format(calendar.getTime())).get();
             assertNotNull(mensaState);
         }catch (ExecutionException e) {
             if(e.getCause() instanceof HttpException) {
@@ -76,14 +72,14 @@ class OpenMensaApiTests {
 
     @Test
     void testGetMultiplePages() throws ExecutionException, InterruptedException {
-        Response<List<Canteen>> firstPage = openMensaAPI.getCanteens().get();
+        final var firstPage = openMensaAPI.getCanteens().get();
 
         assertNotNull(firstPage);
         assertNotNull(firstPage.body());
 
-        PageInfo pageInfo = PageInfo.extractFromResponse(firstPage);
-        for(int i = 2; i <= pageInfo.getTotalCountOfPages(); i++) {
-            List<Canteen> canteensPage = openMensaAPI.getCanteens(i).get();
+        final var pageInfo = PageInfo.extractFromResponse(firstPage);
+        for(var i = 2; i <= pageInfo.getTotalCountOfPages(); i++) {
+            var canteensPage = openMensaAPI.getCanteens(i).get();
             assertNotNull(canteensPage);
             assertNotEquals(0, canteensPage.size());
         }