diff --git a/IcarusAndroid/.idea/caches/build_file_checksums.ser b/IcarusAndroid/.idea/caches/build_file_checksums.ser
index b865ade81be0ffe688e08fc75dc4750bcf7cbeb8..636d3d3e8ded17ef6c605126952d8453a43e099c 100644
Binary files a/IcarusAndroid/.idea/caches/build_file_checksums.ser and b/IcarusAndroid/.idea/caches/build_file_checksums.ser differ
diff --git a/IcarusAndroid/.idea/gradle.xml b/IcarusAndroid/.idea/gradle.xml
index 7ac24c777f8adde6bd57c01c1bfa1cf0143f3d77..641226bc4492be8fb413d58ee6c022a50f65e994 100644
--- a/IcarusAndroid/.idea/gradle.xml
+++ b/IcarusAndroid/.idea/gradle.xml
@@ -9,6 +9,7 @@
+
diff --git a/IcarusAndroid/icarus/.gitignore b/IcarusAndroid/icarus/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..796b96d1c402326528b4ba3c12ee9d92d0e212e9
--- /dev/null
+++ b/IcarusAndroid/icarus/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/IcarusAndroid/icarus/build.gradle b/IcarusAndroid/icarus/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..5d9762ee9d42026ab0a9531d6e43fc5afe8d3be0
--- /dev/null
+++ b/IcarusAndroid/icarus/build.gradle
@@ -0,0 +1,36 @@
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 27
+
+
+
+ defaultConfig {
+ minSdkVersion 21
+ targetSdkVersion 27
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+
+ implementation 'com.android.support:appcompat-v7:27.1.1'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+
+ implementation 'com.android.volley:volley:1.1.0'
+}
diff --git a/IcarusAndroid/icarus/proguard-rules.pro b/IcarusAndroid/icarus/proguard-rules.pro
new file mode 100644
index 0000000000000000000000000000000000000000..f1b424510da51fd82143bc74a0a801ae5a1e2fcd
--- /dev/null
+++ b/IcarusAndroid/icarus/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/IcarusAndroid/icarus/src/androidTest/java/framework/everywaretechnologies/it/icarus/ExampleInstrumentedTest.java b/IcarusAndroid/icarus/src/androidTest/java/framework/everywaretechnologies/it/icarus/ExampleInstrumentedTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..442d88e880ac5354200a93e9324ef6829bf829a5
--- /dev/null
+++ b/IcarusAndroid/icarus/src/androidTest/java/framework/everywaretechnologies/it/icarus/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package framework.everywaretechnologies.it.icarus;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("framework.everywaretechnologies.it.icarus.test", appContext.getPackageName());
+ }
+}
diff --git a/IcarusAndroid/icarus/src/main/AndroidManifest.xml b/IcarusAndroid/icarus/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c6d9e166c2f407e0239bc1138d30f5df4655e3da
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+
diff --git a/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/EventTrackResource.java b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/EventTrackResource.java
new file mode 100644
index 0000000000000000000000000000000000000000..73504c9167bdfc6c73e5392ae0a9865064ee7182
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/EventTrackResource.java
@@ -0,0 +1,4 @@
+package framework.everywaretechnologies.it.icarus;
+
+public class EventTrackResource extends IcarusResource {
+}
diff --git a/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/Icarus.java b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/Icarus.java
new file mode 100644
index 0000000000000000000000000000000000000000..8650282d8c891679dc9e22ff26e573582942a830
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/Icarus.java
@@ -0,0 +1,28 @@
+package framework.everywaretechnologies.it.icarus;
+
+import java.util.LinkedList;
+import java.util.Queue;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+class Icarus {
+
+ private static final Icarus ourInstance = new Icarus();
+ private Queue pendingResources;
+ private Lock pendingResourceLock;
+
+ public static Icarus getInstance() {
+ return ourInstance;
+ }
+
+ private Icarus() {
+
+ pendingResources=new LinkedList<>();
+ pendingResourceLock=new ReentrantLock();
+ }
+
+ public void pushResource(IcarusResource icarusResource){
+
+
+ }
+}
diff --git a/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/IcarusResource.java b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/IcarusResource.java
new file mode 100644
index 0000000000000000000000000000000000000000..214419529eb064c9d0131b8a514c230864bc0518
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/IcarusResource.java
@@ -0,0 +1,4 @@
+package framework.everywaretechnologies.it.icarus;
+
+public abstract class IcarusResource {
+}
diff --git a/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/ScreenTrackResource.java b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/ScreenTrackResource.java
new file mode 100644
index 0000000000000000000000000000000000000000..84252752eb956f5140753afa5a51d62c04b6196e
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/ScreenTrackResource.java
@@ -0,0 +1,4 @@
+package framework.everywaretechnologies.it.icarus;
+
+public class ScreenTrackResource extends IcarusResource {
+}
diff --git a/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/UserSettingsResource.java b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/UserSettingsResource.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf4699036da8b0ebc0a236eae1813ba4c11bf458
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/java/framework/everywaretechnologies/it/icarus/UserSettingsResource.java
@@ -0,0 +1,4 @@
+package framework.everywaretechnologies.it.icarus;
+
+public class UserSettingsResource extends IcarusResource {
+}
diff --git a/IcarusAndroid/icarus/src/main/res/values/strings.xml b/IcarusAndroid/icarus/src/main/res/values/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2a19be19c85ae7b0918f227e7697e4a17223b5af
--- /dev/null
+++ b/IcarusAndroid/icarus/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Icarus
+
diff --git a/IcarusAndroid/icarus/src/test/java/framework/everywaretechnologies/it/icarus/ExampleUnitTest.java b/IcarusAndroid/icarus/src/test/java/framework/everywaretechnologies/it/icarus/ExampleUnitTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..2002f4f1fafcd8ac9e4b5ad402f638fbd9fc8690
--- /dev/null
+++ b/IcarusAndroid/icarus/src/test/java/framework/everywaretechnologies/it/icarus/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package framework.everywaretechnologies.it.icarus;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/IcarusAndroid/settings.gradle b/IcarusAndroid/settings.gradle
index e7b4def49cb53d9aa04228dd3edb14c9e635e003..365efd74af5a74fe7491c33e735f17bfe4dec4a6 100644
--- a/IcarusAndroid/settings.gradle
+++ b/IcarusAndroid/settings.gradle
@@ -1 +1 @@
-include ':app'
+include ':app', ':icarus'