diff --git a/.gitignore b/.gitignore
index 99a234f7db027ae66da39cc04a9f6f3abdfd2d8c..72f0845af6097a2c3e628fcda4e79d63c9896c55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,11 @@ dmypy.json
 opentuner.db/
 opentuner.log
 
+# setuptool output
+build/
+dist/
+*.egg-info/
+
 # Sphinx
 doc/build
 
diff --git a/model_zoo/__init__.py b/predtuner/model_zoo/__init__.py
similarity index 100%
rename from model_zoo/__init__.py
rename to predtuner/model_zoo/__init__.py
diff --git a/model_zoo/_container.py b/predtuner/model_zoo/_container.py
similarity index 100%
rename from model_zoo/_container.py
rename to predtuner/model_zoo/_container.py
diff --git a/model_zoo/alexnet.py b/predtuner/model_zoo/alexnet.py
similarity index 100%
rename from model_zoo/alexnet.py
rename to predtuner/model_zoo/alexnet.py
diff --git a/model_zoo/datasets.py b/predtuner/model_zoo/datasets.py
similarity index 100%
rename from model_zoo/datasets.py
rename to predtuner/model_zoo/datasets.py
diff --git a/model_zoo/lenet.py b/predtuner/model_zoo/lenet.py
similarity index 100%
rename from model_zoo/lenet.py
rename to predtuner/model_zoo/lenet.py
diff --git a/model_zoo/vgg16.py b/predtuner/model_zoo/vgg16.py
similarity index 100%
rename from model_zoo/vgg16.py
rename to predtuner/model_zoo/vgg16.py
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..094a89a948b33b998266de46b5babd0d20db04ce
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,16 @@
+import setuptools
+
+with open("README.md", "r", encoding="utf-8") as fh:
+    long_description = fh.read()
+
+setuptools.setup(
+    name="predtuner",
+    version="0.1",
+    author="Yifan Zhao",
+    author_email="yifanz16@illinois.edu",
+    description="A package for predictive and empirical approximation autotuning",
+    long_description=long_description,
+    long_description_content_type="text/markdown",
+    url="https://github.com/Evan-Zhao/predictive-tuner",
+    packages=["predtuner"],
+)
\ No newline at end of file