diff --git a/app/__init__.py b/app/__init__.py
index 8093b849cd4ace66363e0e389335e6320ddc9d44..dfc4d9daf66e5d6fd70a2c9107e546ad9a74784e 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -4,67 +4,143 @@
 from __future__ import print_function
 
 import os
-import os.path
 import sys
-import time
-import datetime
 import subprocess
+import time
+
 # third-party imports
 from flask import Flask, redirect, url_for, request, render_template, flash
+from flask_wtf import FlaskForm
 from flask_bootstrap import Bootstrap
+from wtforms import StringField, SubmitField, validators
 
+from watchdog.observers import Observer
+from watchdog.events import FileSystemEventHandler
+from watchdog.utils import dirsnapshot
 
-def create_app(config_name):
 
-    app = Flask(__name__)
-    Bootstrap(app)
+global snap_before
+global snap_after
+global snap_diff
+global observing
+global time_stamp
+
+observing = False
+
+
+class MyHandler(FileSystemEventHandler): # Watchdog handler class to take action when observation requested
+    def on_modified(self, event):
+
+        global snap_before
+        global snap_after
+        global snap_diff
+        global observing
+        global time_stamp
+
+        # print(event.src_path + " modified.")
+        snap_after = dirsnapshot.DirectorySnapshot("/home/reggie/flat_db", True) # take post flat_db creation snapshot of the directory
+        snap_diff = dirsnapshot.DirectorySnapshotDiff(snap_before, snap_after) # object to compare the initial snapshot with the final snapshot
+
+        try:
+
+            if ("/home/reggie/flat_db/" + time_stamp + ".done") in snap_diff.files_moved[0]: # check for timestamped string with .done extention in flat_db
+
+                observing = False
+                # print("YES!")
+        except Exception as e:
+            print(e)
+        # print("Created: ", snap_diff.files_created)
+        # print("Deleted: ", snap_diff.files_deleted)
+        # print("Modified: ", snap_diff.files_modified)
+        # print("Moved: ", snap_diff.files_moved)
+
+    def on_created(self, event):
+
+        print(event.src_path + " created.")
+
+
+def create_app(config_name):
+    app = Flask(__name__) # initialization of the flask app
+    Bootstrap(app) # allowing app to use bootstrap
 
     global return_url
     return_url = ''
 
-    @app.route('/', methods=['GET', 'POST'])
-    def index():
+    class MainForm(FlaskForm): # class for the form itself
+        fullname = StringField('Full Name: ', [validators.DataRequired(), ])
+        submit = SubmitField('Submit')
 
-        user = request.remote_user
+    @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page
+    def index():
+        global return_url
+        username = request.remote_user
 
-        if "redir" in request.args and return_url == "":
+        if "redir" in request.args and return_url == "": # check for redir arg in url
             return_url = request.args.get("redir") or "/pun/sys/dashboard"
-
             if name != "":
 
-                return redirect(url_for('success', username=str(user), fullname=name))
+        fullname = False
+        form = MainForm() # initialize form object
+        if form.is_submitted():
+            fullname = form.fullname.data
+            form.fullname.data = '' # reset form data upon capture
+
+            return redirect(url_for('success', username=str(username), fullname=fullname))
 
-            else:
-                return render_template("auth/SignUp.html", user=user)
+        return render_template('auth/SignUp.html', form=form, user=username)
 
     @app.route('/success/<username>/<fullname>')
     def success(username, fullname):
 
         global return_url
+        global snap_before
+        global observing
+        global time_stamp
         print(username, fullname, return_url, file=sys.stdout)
 
-        # Deliver arguments to script.
+        # Deliver arguments to script. (for local vagrant implementation)
         tempString = 'ssh ohpc "sudo /opt/ohpc_user_create/user_create ' + username + " " + fullname + '"'
         print(tempString, file=sys.stdout)
 
         try:
             # function to write out a flatdb with the name of the file being a timestamp and the content
             # of the file beieng blazerID the user submitted from the flask form (fullname)
+
             time_stamp = time.strftime("%m-%d-%Y_%H:%M:%S")
-            directory = "/var/www/ood/register/flask_user_reg/app/flat_db"
-            complete_file_name = os.path.join(directory, time_stamp + ".txt")
+            directory = "/home/reggie/flat_db/"
+            complete_file_name = os.path.join(directory, time_stamp + "_" + request.remote_user + ".txt")
 
             if not os.path.exists(directory):
                 os.makedirs(directory)
 
-            file = open(complete_file_name, "w")
-            file.write(fullname)
+            event_handler = MyHandler() # initialize handler
+            observer = Observer() # initialize obsever to relay to handler
+            observer.schedule(event_handler, path='/home/reggie/flat_db', recursive=True)
+            observer.start()
+
+            observing = True
+
+            file = open(complete_file_name, "w") # create time stamped file to be queued
+            file.write("Hey")
+
+            # take an initial state snapshot of the db after file queued
+            snap_before = dirsnapshot.DirectorySnapshot("/home/reggie/flat_db", True)
+
+            while observing:
+                # TODO: Update page ui element dynamically
+
+                time.sleep(5)
+            observer.stop()
             file.close()
-            return redirect(return_url, 302)
+            return render_template("errors/registration_failed.html") # Todo: replace template with redirect
+            # return redirect(return_url, 302)
+
+        except Exception as e:
+            print(e)
+            flash("Registration Failed. Please try again.") # show error message upon failure
+            return redirect(url_for('index'))
 
-        except:
-            flash("Registration Failed")
-            return redirect(return_url)
+    # misc page error catching
 
     @app.errorhandler(403)
     def forbidden(error):
diff --git a/requirements.txt b/requirements.txt
index 6bc1929449ffe8befc20ccb807d3646b543afab0..f10e857792663d11bf27eeb62e0b3b6b39d39432 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+argh==0.26.2
 Click==7.0
 dominate==2.3.5
 Flask==1.0.2
@@ -6,18 +7,21 @@ Flask-Login==0.4.1
 Flask-Testing==0.7.1
 Flask-WTF==0.14.2
 itsdangerous==1.1.0
-Jinja2>=2.10.1
+Jinja2==2.10.1
 Mako==1.0.7
 MarkupSafe==1.1.1
+pathtools==0.1.2
 pbr==5.1.3
 python-dateutil==1.5
 python-editor==1.0.4
 pytz==2013.7
+PyYAML==5.1.2
 six==1.12.0
 stevedore==1.30.1
 virtualenv==16.4.3
 virtualenv-clone==0.5.1
 virtualenvwrapper==4.8.4
 visitor==0.1.3
+watchdog==0.9.0
 Werkzeug==0.14.1
 WTForms==2.2.1