diff --git a/.gitignore b/.gitignore
index 976a9c748e5a03e3e04d2787531d4a5a3b20d970..248fb04eaf7f4814f59b9dc160ee58616ab95ba7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -108,3 +108,4 @@ venv.bak/
 
 # Jetbrains folders
 .idea/
+migrations/
diff --git a/hodor/__init__.py b/hodor/__init__.py
index a313df16678999907540db8f8d4c8629e627ae2e..61b6d17432d35b5eca717b560baaa9b44e9dad26 100644
--- a/hodor/__init__.py
+++ b/hodor/__init__.py
@@ -1,19 +1,35 @@
-# -*- coding: utf-8 -*-
-__version__ = '0.1'
-from flask import Flask
-from flask_debugtoolbar import DebugToolbarExtension
+# app/__init__.py
+import time
+from flask_api import FlaskAPI
+from flask_sqlalchemy import SQLAlchemy
+# local import
+from instance.config import app_config
 
-ENV = 'development'
+# initialize sql-alchemy
+db = SQLAlchemy()
 
-app = Flask('hodor')
-app.config['SECRET_KEY'] = 'CHANGE_ME_IN_PRODUCTION'
+from hodor.models import *
 
-from hodor.controllers import *
 
-if ENV == 'development':
-    app.debug = True
-    toolbar = DebugToolbarExtension(app)
-else:
-    app.debug = False
-    if app.config['SECRET_KEY'] == 'CHANGE_ME_IN_PRODUCTION':
-        print("[!] Please change your secret key before running in production");
+def create_app(config_name):
+    app = FlaskAPI(__name__, instance_relative_config=True)
+    app.config.from_object(app_config[config_name])
+    app.config.from_pyfile('config.py')
+    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
+    db.init_app(app)
+    if config_name != 'production':
+        for x in range(0,5):
+            print "*** YOU ARE NOT RUNNING THE APP IN PRODUCTION MODE!! *** CTRL + C TO ABORT. APP WILL RUN IN {} SECONDS".format(5-x)
+            time.sleep(1)
+
+    if config_name == 'production':
+        app.config['DEFAULT_RENDERERS'] = [
+            'flask.ext.api.renderers.JSONRenderer',
+        ]
+
+    return app
+
+
+app = create_app('testing')
+
+from hodor.controllers import *
diff --git a/hodor/controllers/index.py b/hodor/controllers/index.py
deleted file mode 100644
index 922aec5532208199ec2f8e69a9a1f0729e68a4e5..0000000000000000000000000000000000000000
--- a/hodor/controllers/index.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- coding: utf-8 -*-
-from hodor import app
-from flask import render_template, request
-from flask_wtf import FlaskForm
-from wtforms import StringField
-from wtforms.validators import DataRequired
-
-
-class CreateForm(FlaskForm):
-    text = StringField('name', validators=[DataRequired()])
-
-
-@app.route('/')
-def start():
-    pass
-
-@app.route('/app')
-def application():
-    pass
diff --git a/hodor/models/index.py b/hodor/models/index.py
deleted file mode 100644
index 54ff974e8265b86ebd6b8f0cc04bbf29faec7988..0000000000000000000000000000000000000000
--- a/hodor/models/index.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 -*-
-from flask import flash
-
-
-class Printer(object):
-
-    def show_string(self, text):
-        if text == '':
-            flash("You didn't enter any text to flash")
-        else:
-            flash(text + "!!!")
diff --git a/hodor/settings/.keep b/hodor/settings/.keep
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/requirements.txt b/requirements.txt
index e0cb3ec246636fdd5bb8fc371d4ef3fab45a3c9a..0ce32c893f44d50560753c71570bfdda299c6e83 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,4 @@
-Flask==0.12.2
-Flask-DebugToolbar==0.10.1
-Flask-SocketIO==2.9.1
-Flask-WTF==0.14.2
-Jinja2==2.9.6
-virtualenv
-flask-restful
+Flask
+Flask-WTF
+Jinja2
+Flask-DebugToolbar
diff --git a/runserver.py b/runserver.py
index c532c4a3232fb0d28a78ace00362f26919ab5952..4b3da66d4bfea22e5563ded0e0a05c55567c7c30 100755
--- a/runserver.py
+++ b/runserver.py
@@ -1,8 +1,6 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-import os
 from hodor import app
 
+config_name = 'development'
+
 if __name__ == '__main__':
-    port = int(os.environ.get("PORT", 8080))
-    app.run('0.0.0.0', port=port)
+    app.run()
\ No newline at end of file