diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..d0db3aa3d285ac98ce99a9a82b36795f242f064e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python2
+
+from setuptools import setup
+
+setup(name = "time_machine",
+      version = "0.1",
+      author = "Hugo Hornquist",
+      author_email = "hugo@lysator.liu.se",
+      description = "A program for measuring times.",
+      license = "MIT",
+      url = "https://git.lysator.liu.se/hugo/time-machine",
+      packages = ["time_machine"],
+      entry_points = {
+          "console_scripts": [
+              "time-machine = time_machine.machine:main"
+          ]
+      }
+      )
diff --git a/time_machine/__init__.py b/time_machine/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..23fbec042f24eb7a35d6902efe934cad395a2355
--- /dev/null
+++ b/time_machine/__init__.py
@@ -0,0 +1 @@
+name = "time_machine"
diff --git a/machine.py b/time_machine/machine.py
similarity index 98%
rename from machine.py
rename to time_machine/machine.py
index f25fb3c7155da424b60d6103d85b4e8fe8542a51..5d5e5c190192f40dfbdfb616b282fa821e2c1200 100644
--- a/machine.py
+++ b/time_machine/machine.py
@@ -109,7 +109,8 @@ def wait_btn():
     return g.wait_for_edge(btn_pin, g.RISING, bouncetime=500)
     #g.wait_for_edge(btn_pin, g.RISING)
 
-if __name__ == "__main__":
+def main():
+    global state, pins
     while True:
         if state == States.no_hafv:
             print
@@ -149,3 +150,6 @@ if __name__ == "__main__":
             lcd_info("Avvakta")
             state = States.no_hafv
             time.sleep(1)
+
+if __name__ == "__main__":
+    main()