diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5bfbe2b983b3de0f1438f22df9ca11bdf608c457..6afa15567360e5f64b47fb9678fa3d544d523839 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,6 +10,13 @@ cache:
   paths:
     - "$CI_PROJECT_DIR/pip-cache"
 
+variables:
+  PIP_CACHE_DIR: "$CI_PROJECT_DIR/pip-cache"
+
+cache:
+  paths:
+    - "$CI_PROJECT_DIR/pip-cache"
+
 test:
   script:
   - pip install -e .
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..b39174cb389a457361cff673de237b4e2c751f3c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+.PHONY: dist clean upload tag help
+
+help:
+	@echo "See Makefile itself for help"
+
+clean:
+	rm -r hektor.egg-info dist build __pycache__
+
+dist:
+	pip install -U setuptools pip wheel && \
+	python setup.py bdist_wheel --universal
+
+upload: dist
+	twine upload dist/*
+
+tag:
+	git tag $(python setup.py --version)
diff --git a/bin/hektor b/bin/hektor
old mode 100644
new mode 100755
diff --git a/setup.py b/setup.py
index 344bda7c1c3adc26622e457e6b6db69081048268..537679fdb56c09a58fe95fb474021883b5512c8f 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@ from setuptools import setup
 
 setup(
     name='hektor',
-    version='0.2',
+    version='0.2.2',
     description='A QTI-XML/XLS to JSON converter for humans',
     author='Jan Maximilian Michal',
     author_email='mail@janmax.org',
@@ -14,5 +14,5 @@ setup(
     install_requires=["lxml~=4.1.1",
                       "xlrd~=1.1.0",
                       "xkcdpass~=1.16.0"],
-    py_modules=['hektor']
+    py_modules=['hektor', 'lib']
 )