diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 60beb0d471da8b643161ebed4c672557dbebecd1..8b7f32cd8696c226885edb1736a3a43444cdd063 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,7 +37,7 @@ test:
 
 run:
   script:
-    - python setup.py bdist_wheel
+    - python setup.py dist_wheel
     # an alternative approach is to install and run:
     - pip install dist/*
     # run the command here
@@ -45,13 +45,13 @@ run:
     paths:
       - dist/*.whl
 
-pages:
-  script:
-    - pip install sphinx sphinx-rtd-theme
-    - cd doc ; make html
-    - mv build/html/ ../public/
-  artifacts:
-    paths:
-      - public
-  rules:
-    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+# pages:
+#   script:
+#     - pip install sphinx sphinx-rtd-theme
+#     - cd doc ; make html
+#     - mv build/html/ ../public/
+#   artifacts:
+#     paths:
+#       - public
+#   rules:
+#     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..bea92033b349cb512235b6db5aab6b554628fd62
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,19 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
+
+## Unreleased
+[//]: #"This section is for rolling changes to be appended that will be part of the next release.  This tracks master."
+
+### Added
+- Added precommit.sh to top level directory.
+
+### Updated
+
+### Removed
+
+### Fixed
+
+## [0.1.0] 
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..81f3971ba60f61895d316ab37d7581ea1f50b31e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,59 @@
+import os
+import subprocess
+
+from setuptools import find_packages, setup
+
+VERSION_MAJOR = 0
+VERSION_MINOR = 0
+VERSION_PATCH = 1
+SEMVER_STRING = f"v{VERSION_MAJOR:d}.{VERSION_MINOR:d}.{VERSION_PATCH:d}"
+
+PROJECT_NAME = os.getenv("PYPI_PACKAGE_NAME", "WHY")
+PROJECT_DESCRIPTION = ("Explainable AI system")
+PROJECT_URL = "https://gitlab.cci.drexel.edu/pjm363/why-senior-project"
+
+AUTHOR_NAME = "Philip Monaco, Abdullah Shah, Ibrahim Elsaid, Jashanpreet Singh, William Lu, Songheng Li"
+MAINTAINER_NAME = "Philip Monaco, Abdullah Shah, Ibrahim Elsaid, Jashanpreet Singh, William Lu, Songheng Li"
+
+all_requires = []
+
+core_requires = [
+    "numpy>=1.21",
+    "pandas>=1.3.5",
+    "bokeh>=2.4.2",
+    "matplotlib>=3.5.0",
+    "scikit-learn>=1.0.2"
+]
+
+all_requires += core_requires
+
+lint_requires = [
+    "black==21.12b0",
+    "isort==5.10.1",
+    "flake8==4.0.1",
+    "mypy"
+]
+
+all_requires += lint_requires
+
+docs_requires = [
+    "Sphinx",
+    "sphinx-gallery",
+    "sphinx-rtd-theme",
+    "m2r2"
+]
+
+all_requires += docs_requires
+
+def _minimal_ext_cmd(cmd):
+    env = {}
+    for k in ["SYSTEMROOT", "PATH", "HOME"]:
+        v = os.environ.get(k)
+        if v is not None:
+            env[k] = v
+    env["Language"] = "C"
+    env["LANG"] = "C"
+    env["LV_ALL"] = "C"
+    out = subprocess.check_output(cmd, stderr=subprocess.STDOUT, env=env)
+    return out
+