diff --git a/backend/__init__.py b/backend/__init__.py
deleted file mode 100644
index fc167974541af2a6f7b12bff44233097b534a487..0000000000000000000000000000000000000000
--- a/backend/__init__.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import os
-from flask import Flask
-from flask_sqlalchemy import SQLAlchemy
-from flask_security import Security, SQLAlchemyUserDatastore, auth_required, hash_password
-from flask_security.models import fsqla_v3 as fsqla
-from flask_login import LoginManager
-
-
-# Create app
-app = Flask(__name__)
-app.config['DEBUG'] = True
-
-# Register app blueprints:
-from server import default as default_blueprint
-app.register_blueprint(default_blueprint)
-
-from auth import auth as auth_blueprint
-app.register_blueprint(auth_blueprint)
-
-# Define database models:
-fsqla.FsModels.set_db_info(db)
-
-class Role(db.Model, fsqla.FsRoleMixin):
-    pass
-
-class User(db.Model, fsqla.FsUserMixin):
-    pass
-
-# Define security configurations:
-if app.config['DEBUG']:
-    # Generate a nice key using secrets.token_urlsafe()
-    app.config['SECRET_KEY'] = os.environ.get("SECRET_KEY", "FaHW65b6vBDGlhazs-8JZHb4jiZvI_9jj6hcUa_EV1Q")
-    # Bcrypt is set as default SECURITY_PASSWORD_HASH, which requires a salt
-    # Generate a good salt using: secrets.SystemRandom().getrandbits(128)
-    app.config['SECURITY_PASSWORD_SALT'] = os.environ.get("SECURITY_PASSWORD_SALT", "327589938147555935984237744799432734422")
-
-    # have session and remember cookie be samesite (flask/flask_login)
-    app.config["REMEMBER_COOKIE_SAMESITE"] = "strict"
-    app.config["SESSION_COOKIE_SAMESITE"] = "strict"
-else: 
-    # Secrets for the development environment are hard-coded.
-    # Secrets for production/deployment must be passed securely to the app.
-    # This can be done using environment variables. 
-    exit("App is not secure, security configurations for production environment must be made")
-
-
-# Database configurations:
-# Use an in-memory db
-app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://' 
-# Create database connection object
-db = SQLAlchemy(app)
-
-# Setup Flask-Security
-user_datastore = SQLAlchemyUserDatastore(db, User, Role)
-app.security = Security(app, user_datastore)
- 
-login_manager = LoginManager()
-login_manager.init_app(app)
-
-if __name__ == '__main__':
-
-    # Only do this once:
-    with app.app_context():
-    # Create User to test with
-        db.create_all()
-        if not app.security.datastore.find_user(email="test@me.com"):
-            app.security.datastore.create_user(email="test@me.com", password=hash_password("password"))
-        db.session.commit()
-
-    # Start the app
-    app.run()
\ No newline at end of file
diff --git a/backend/app.py b/backend/app.py
new file mode 100644
index 0000000000000000000000000000000000000000..98f909a0227961adee0bbdaa4fe574b8f3a35713
--- /dev/null
+++ b/backend/app.py
@@ -0,0 +1,48 @@
+import os
+from flask import Flask
+from flask import current_app
+from flask_sqlalchemy import SQLAlchemy
+from config import Config
+from flask_security import Security, SQLAlchemyUserDatastore, auth_required, hash_password
+from models import db, User, Role
+from flask_security.models import fsqla_v3 as fsqla
+
+# Create app
+app = Flask(__name__)
+app.config.from_object(Config)
+
+
+# Define security configurations:
+if not app.config['DEBUG']:
+    exit("App is not secure, security configurations for production environment must be made")
+
+# Register the blueprints with the app
+from server import default as default_blueprint
+app.register_blueprint(default_blueprint)
+
+from auth import auth as auth_blueprint
+app.register_blueprint(auth_blueprint)
+
+# Setup Flask Security
+user_datastore = SQLAlchemyUserDatastore(db, User, Role)
+app.security = Security(app, user_datastore)
+
+"""
+#login_manager = LoginManager()
+#login_manager.init_app(app)
+"""
+
+if __name__ == '__main__':
+   
+    with app.app_context():
+        # Bind the database to the app
+        db.init_app(app)
+        db.create_all()
+
+        if not app.security.datastore.find_user(email="test@me.com"):
+            app.security.datastore.create_user(email="test@me.com", password=hash_password("test"))
+        db.session.commit()
+            
+        
+        # Start the app
+        app.run()
\ No newline at end of file
diff --git a/backend/config.py b/backend/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..0874b841116d44e874dd3073e1562132f8f1b5e1
--- /dev/null
+++ b/backend/config.py
@@ -0,0 +1,13 @@
+import os
+
+class Config:
+    DEBUG = True
+    # Generate a nice key using secrets.token_urlsafe()
+    SECRET_KEY = os.environ.get("SECRET_KEY", "FaHW65b6vBDGlhazs-8JZHb4jiZvI_9jj6hcUa_EV1Q")
+    # Generate a good salt using: secrets.SystemRandom().getrandbits(128)
+    SECURITY_PASSWORD_SALT = os.environ.get("SECURITY_PASSWORD_SALT", "327589938147555935984237744799432734422")
+    # have session and remember cookie be samesite (flask/flask_login)
+    REMEMBER_COOKIE_SAMESITE = "strict"
+    SESSION_COOKIE_SAMESITE = "strict"
+    # Use an in-memory db
+    SQLALCHEMY_DATABASE_URI = 'sqlite://'
\ No newline at end of file
diff --git a/backend/models.py b/backend/models.py
index c4f6f29f733506ce6f0c39940eb1fe3a42856a80..fb4707dc4f42cffc391f57ea2b0ecb146d2cb1da 100644
--- a/backend/models.py
+++ b/backend/models.py
@@ -1,8 +1,29 @@
-from sqlalchemy import create_engine
-from sqlalchemy import Column
-from sqlalchemy import Integer, String, text
-from sqlalchemy.orm import Mapped, mapped_column
-from sqlalchemy.orm import DeclarativeBase, sessionmaker
+from flask_sqlalchemy import SQLAlchemy
+from flask_security.models import fsqla_v3 as fsqla
 
+db = SQLAlchemy()
 
+# Set up Flask-Security with the User and Role models
+fsqla.FsModels.set_db_info(db)
 
+class Role(db.Model, fsqla.FsRoleMixin):
+    pass
+
+class User(db.Model, fsqla.FsUserMixin):
+    pass
+
+"""
+class Users(Base):
+    __tablename__="users"
+
+    id: Mapped[int] = mapped_column(primary_key = True)
+    name: Mapped[str] = mapped_column(String(50))
+    email: Mapped[str] = mapped_column(String(120), unique=True)
+
+    def __init__(self, name=None, email=None):
+        self.name = name
+        self.email = email
+
+    def __repr__(self):
+        return f"<Users(id={self.id}, name={self.name})>"
+"""
diff --git a/backend/server.py b/backend/server.py
index 109442c8581dce5dce185bf58f3ceb36697c9abb..3090dde4eb71cb949db477fe4437f2e2a139a4a7 100755
--- a/backend/server.py
+++ b/backend/server.py
@@ -1,18 +1,19 @@
-from flask import Flask, Blueprint
-
-app = Flask(__name__)
+from models import db, User
+from flask import Blueprint, jsonify
 
 default = Blueprint("default", __name__)
 
 @default.route("/")
-def homepage():
-    return "abc"
-
-
-if __name__ == '__main__':
-    app.debug = True
-    app.run()
-
+def test_retrieve_user():
+    
+    user = db.session.query(User).filter_by(email="test@me.com").first()
+
+    # Check if the user exists
+    if user:
+        # Return user details as JSON response
+        return jsonify({'email': user.email})
+    else:
+        return "User not found", 404