diff --git a/.gitignore b/.gitignore
index 3034d54..21bdd27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
 .idea
 __pycache__
 build/
+venv/
+dist/
+*egg-info*
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 3f4c2e3..fbf8f03 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,26 @@
+.PHONY: init freeze test test_verbose build_dist upload
+
+venv:
+	python3 -m venv .env
+
 init:
 	pip install -r requirements.txt
 
+freeze:
+	pip freeze | grep -v "pkg-resources" > requirements.txt
+
 test:
 	nosetests tests/*
 
 test_verbose:
 	nosetests --nocapture tests/*
+
+build_dist:
+	rm -rf dist/*
+	python3 setup.py sdist bdist_wheel
+
+upload_test:
+	python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
+
+upload:
+	python3 -m twine upload dist/*
\ No newline at end of file
diff --git a/README.md b/README.md
index 54eb31f..267f5a3 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,12 @@
 
 Encode and decode 8B10B encoding
 
+## Get
+
+```
+python3 -m pip install encdec8b10b
+```
+
 ## Usage
 
 ### Encode Data Byte
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..cc8e665
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,16 @@
+bleach==3.1.0
+certifi==2019.3.9
+chardet==3.0.4
+docutils==0.14
+idna==2.8
+nose==1.3.7
+pkginfo==1.5.0.1
+Pygments==2.3.1
+readme-renderer==24.0
+requests==2.21.0
+requests-toolbelt==0.9.1
+six==1.12.0
+tqdm==4.31.1
+twine==1.13.0
+urllib3==1.24.2
+webencodings==0.5.1
diff --git a/setup.py b/setup.py
index 7f6cb8f..bfbdf59 100644
--- a/setup.py
+++ b/setup.py
@@ -4,10 +4,10 @@ with open("README.md", "r") as fh:
     long_description = fh.read()
 
 setuptools.setup(
-    name='encdec_8b10b',
-    version='1.0-alpha',
+    name='encdec8b10b',
+    version='1.0',
     packages=setuptools.find_packages(),
-    url='https://github.com/olagrottvik/encdec_8b10b',
+    url='https://github.com/olagrottvik/encdec8b10b',
     license='MIT',
     author='Ola Grøttvik',
     author_email='olagrottvik@gmail.com',