diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..a0bacc2
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "app/src/main/cpp/3rdparty/json"]
+ path = app/src/main/cpp/3rdparty/json
+ url = https://github.com/nlohmann/json
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml
deleted file mode 100644
index 19f7429..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_0_5_0_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_0_5_0_jar.xml
new file mode 100644
index 0000000..5d55433
--- /dev/null
+++ b/.idea/libraries/Gradle__com_ealva_ealvalog_0_5_0_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml
deleted file mode 100644
index 3e34aa9..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_5_0_aar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_5_0_aar.xml
new file mode 100644
index 0000000..88f14d2
--- /dev/null
+++ b/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_5_0_aar.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml
deleted file mode 100644
index 5de757f..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_5_0_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_5_0_jar.xml
new file mode 100644
index 0000000..2bd1f86
--- /dev/null
+++ b/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_5_0_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml
deleted file mode 100644
index 29c0e5c..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_3_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_3_jar.xml
new file mode 100644
index 0000000..d65aa0e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_3_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_1_3_9_jar.xml b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_1_3_9_jar.xml
new file mode 100644
index 0000000..dd099bf
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_1_3_9_jar.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_0_18_jar.xml b/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_0_18_jar.xml
new file mode 100644
index 0000000..90b29b1
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_0_18_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml b/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml
deleted file mode 100644
index bbfeb85..0000000
--- a/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_guava_guava_23_0_jar.xml b/.idea/libraries/Gradle__com_google_guava_guava_23_0_jar.xml
new file mode 100644
index 0000000..847af3a
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_guava_guava_23_0_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_j2objc_j2objc_annotations_1_1_jar.xml b/.idea/libraries/Gradle__com_google_j2objc_j2objc_annotations_1_1_jar.xml
new file mode 100644
index 0000000..177b66d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_j2objc_j2objc_annotations_1_1_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml b/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml
deleted file mode 100644
index 9c3a836..0000000
--- a/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_okio_okio_2_4_0_jar.xml b/.idea/libraries/Gradle__com_squareup_okio_okio_2_4_0_jar.xml
new file mode 100644
index 0000000..e36d3cb
--- /dev/null
+++ b/.idea/libraries/Gradle__com_squareup_okio_okio_2_4_0_jar.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_14_jar.xml b/.idea/libraries/Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_14_jar.xml
new file mode 100644
index 0000000..f87b444
--- /dev/null
+++ b/.idea/libraries/Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_14_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml
deleted file mode 100644
index e7c3f2f..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_50_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_50_jar.xml
new file mode 100644
index 0000000..5116b61
--- /dev/null
+++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_50_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml
deleted file mode 100644
index 70d36cc..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_50_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_50_jar.xml
new file mode 100644
index 0000000..3aaa3f9
--- /dev/null
+++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_50_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml
deleted file mode 100644
index fbc6260..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_50_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_50_jar.xml
new file mode 100644
index 0000000..0002098
--- /dev/null
+++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_50_jar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file