diff --git a/app.py b/app.py
index 513771164c656576bd3345482234e7bdbb583e99..1d890ef12d254070afee429dd1b87faf832d814c 100644
--- a/app.py
+++ b/app.py
@@ -1,3 +1,4 @@
+import glob
 import os
 from pathlib import Path
 
@@ -11,6 +12,7 @@ app = Flask(__name__)
 
 SLIDE_DIR = "slides"
 IMAGE_DIR = "img_cache"
+INDEX_DIR = "index"
 
 Index = TitleFocusSearchIndex
 
@@ -18,6 +20,7 @@ Index = TitleFocusSearchIndex
 @app.route('/')
 def index():
     ll = os.listdir(SLIDE_DIR)
+    ll.sort()
     return render_template('index.html', ll=ll)
 
 
@@ -27,29 +30,31 @@ def allowed_file(filename):
 
 @app.route('/upload', methods=['POST'])
 def upload():
-    if 'file' in request.files:
-        file = request.files['file']
-        if file.filename != '':
-            if file and allowed_file(file.filename):
-                filename = secure_filename(file.filename)
-                file_path = os.path.join(Path(SLIDE_DIR), filename)
-                file.save(file_path)
-                pdf = pdfplumber.open(file_path)
-                index = Index()
-                for i, page in enumerate(pdf.pages):
-                    text = page.extract_text()
-                    index.add(str(file_path), i, text, text.split("\n")[0])  # Assumes title in the first line
-                    img_name = str(file_path)[7:] + "_" + str(i) + ".jpg"
-                    img_path = os.path.join(IMAGE_DIR, img_name)
-                    page.to_image().save(img_path)
-                del index
+    if 'files' in request.files:
+        files = request.files.getlist('files')
+        for i, file in enumerate(files):
+            print(i, file)
+            if file.filename != '':
+                if file and allowed_file(file.filename):
+                    filename = secure_filename(file.filename)
+                    file_path = os.path.join(Path(SLIDE_DIR), filename)
+                    file.save(file_path)
+                    pdf = pdfplumber.open(file_path)
+                    index = Index(index_dir=INDEX_DIR)
+                    for i, page in enumerate(pdf.pages):
+                        text = page.extract_text()
+                        index.add(str(file_path), i, text, text.split("\n")[0])  # Assumes title in the first line
+                        img_name = str(file_path)[7:] + "_" + str(i) + ".jpg"
+                        img_path = os.path.join(IMAGE_DIR, img_name)
+                        page.to_image().save(img_path)
+                    del index
     return redirect('/')
 
 
 @app.route("/search", methods=['POST'])
 def query():
     try:
-        index = Index()
+        index = Index(index_dir=INDEX_DIR)
         query = request.form.get("term")
         context = request.form.get("context")
         result = index.search(query, context)
@@ -64,6 +69,15 @@ def query():
         })
 
 
+@app.route("/reset_index", methods=['POST'])
+def reset_index():
+    for folder in [IMAGE_DIR, SLIDE_DIR, INDEX_DIR]:
+        files = glob.glob(folder + '/*')
+        for f in files:
+            os.remove(f)
+    return redirect('/')
+
+
 @app.route("/slide/<img_name>")
 def slide(img_name):
     path = os.path.join(IMAGE_DIR, img_name)
diff --git a/templates/index.html b/templates/index.html
index 31e1195555d67f5b4eb4f8baad4f1bea4c9541ca..a24edd38847ad1cf9d9a1149aff1ed0bfafef943 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -5,13 +5,18 @@
 <body>
 <h1>Upload new slide</h1>
 <form action="upload" enctype="multipart/form-data" method="post">
-    <input type="file" name="file">
+    <input type="file" name="files" multiple="">
     <input type="submit" value="Upload">
 </form>
-{% for item in ll %}
-    <ul>
+<ul>
+    {% for item in ll %}
         <li>{{ item }}</li>
-    </ul>{% endfor %}
+    {% endfor %}
+</ul>
+
+<form action="reset_index" method="post">
+    <input type="submit" value="Reset Index">
+</form>
 
 <h1>Query</h1>
 <form action="search" method="post">
@@ -37,7 +42,7 @@
             if (http.readyState == 4 && http.status == 200) {
                 console.log(http.responseText);
                 res = JSON.parse(http.responseText)
-                if(res["type"] == "miss"){
+                if (res["type"] == "miss") {
                     document.getElementById("form-result").innerHTML = "No slide found";
                     return;
                 }