diff --git a/.gitmodules b/.gitmodules
index 0b1ff289423a93278ac8d274890a2b5ae0788e1a..9c04a74362075f927208cfbca8332da1d405e755 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -8,8 +8,13 @@
 	ignore = untracked
 [submodule "apps/official/AlekSIS-App-DashboardFeeds"]
 	path = apps/official/AlekSIS-App-DashboardFeeds
-	url = https://edugit.org/AlekSIS/Official/AlekSIS-App-DashboardFeeds.git
+	url = https://edugit.org/AlekSIS/Official/AlekSIS-App-DashboardFeeds
 	ignore = untracked
 [submodule "apps/official/AlekSIS-App-LDAP"]
 	path = apps/official/AlekSIS-App-LDAP
 	url = https://edugit.org/AlekSIS/official/AlekSIS-App-LDAP
+	ignore = untracked
+[submodule "apps/official/AlekSIS-App-Untis"]
+	path = apps/official/AlekSIS-App-Untis
+	url = https://edugit.org/AlekSIS/official/AlekSIS-App-Untis
+	ignore = untracked
diff --git a/aleksis/core/static/js/main.js b/aleksis/core/static/js/main.js
index 403837da22d351d8e97ed3cf6c27c79e30514497..b625c105f4e0e8a51b581104049bd1d76bcbc200 100644
--- a/aleksis/core/static/js/main.js
+++ b/aleksis/core/static/js/main.js
@@ -66,7 +66,7 @@ $(document).ready( function () {
     });
 
     // Initialise auto-completion for search bar
-    window.autocomplete = new Autocomplete({});
+    window.autocomplete = new Autocomplete({minimum_length: 2});
     window.autocomplete.setup();
 
     // Initialize text collapsibles [MAT, own work]
diff --git a/aleksis/core/static/js/search.js b/aleksis/core/static/js/search.js
index 7943d2ebfaa07123bf0174b24c055884ceb0bd36..ea1dfb25b061f73a8a74c40edad3e3c8d073278e 100644
--- a/aleksis/core/static/js/search.js
+++ b/aleksis/core/static/js/search.js
@@ -35,9 +35,20 @@ Autocomplete.prototype.setup = function () {
         self.query_box.trigger("keydown");
     });
 
+    this.query_box.keyup(function () {
+        var query = self.query_box.val();
+
+        if (query.length < self.minimum_length) {
+            $("#search-results").remove();
+            return true;
+        }
+
+        self.fetch(query);
+        return true;
+    });
+
     // Watch the input box.
     this.query_box.keydown(function (e) {
-        var query = self.query_box.val();
 
         if (e.which === 38) { // Keypress Up
             if (!self.selected_element) {
@@ -69,14 +80,6 @@ Autocomplete.prototype.setup = function () {
             e.preventDefault();
             window.location.href = self.selected_element.attr("href");
         }
-
-        if (query.length < self.minimum_length) {
-            $("#search-results").remove();
-            return true;
-        }
-
-        self.fetch(query);
-        return true;
     });
 
     // // On selecting a result, remove result box
diff --git a/aleksis/core/static/style.scss b/aleksis/core/static/style.scss
index e1edc75561fb4fe57568f1b148b8ab0f955c1b58..10a00caa35ef329b248b7be2f927cd2714ebd244 100644
--- a/aleksis/core/static/style.scss
+++ b/aleksis/core/static/style.scss
@@ -189,6 +189,7 @@ a.collection-item.search-item {
 
 div#search-results {
   position: absolute;
+  margin-top: -10px;
   width: 100%;
 }
 
diff --git a/aleksis/core/templates/search/search.html b/aleksis/core/templates/search/search.html
index babbd70d945f26cbf777ae46ca0add15a24e442d..d463f1569793168d6644c80a1dc63fe60cb06234 100644
--- a/aleksis/core/templates/search/search.html
+++ b/aleksis/core/templates/search/search.html
@@ -14,7 +14,6 @@
     <input type="text" name="{{ form.q.name }}" id="{{ form.q.id }}" value="{% firstof form.q.value "" %}"
            placeholder="{% trans "Search Term" %}">
 
-    <h6>{{ form.models.label }}</h6>
     <div>
       {% for group, items in form.models|select_options %}
         {% for choice, value, selected in items %}
@@ -28,10 +27,12 @@
       {% endfor %}
     </div>
 
-    <button type="submit" class="btn waves-effect waves-light green">
-      <i class="material-icons left">search</i>
-      {% blocktrans %}Search{% endblocktrans %}
-    </button>
+    <p>
+      <button type="submit" class="btn waves-effect waves-light green">
+        <i class="material-icons left">search</i>
+        {% blocktrans %}Search{% endblocktrans %}
+      </button>
+    </p>
 
     <h5>{% trans "Results" %}</h5>
 
@@ -44,7 +45,9 @@
           </a>
         {% empty %}
           <li class="collection-item">
-            {% trans "No search results could be found to your search" %}
+            <p class="flow-text">
+              {% trans "No search results could be found to your search." %}
+            </p>
           </li>
         {% endfor %}
       </div>
@@ -81,11 +84,13 @@
         </ul>
       {% endif %}
     {% else %}
-      <div class="collection">
+      <ul class="collection">
         <li class="collection-item">
-          {% trans "Please enter a search term above" %}
+          <p class="flow-text">
+            {% trans "Please enter a search term above." %}
+          </p>
         </li>
-      </div>
+      </ul>
     {% endif %}
 
 
diff --git a/apps/official/AlekSIS-App-Untis b/apps/official/AlekSIS-App-Untis
new file mode 160000
index 0000000000000000000000000000000000000000..b46a822b8d554fea59da85d825e414663ccce346
--- /dev/null
+++ b/apps/official/AlekSIS-App-Untis
@@ -0,0 +1 @@
+Subproject commit b46a822b8d554fea59da85d825e414663ccce346