diff --git a/.gitignore b/.gitignore
index 3c4dd4c9f24dd9353e2835913852d752b621a5f7..b99139dcfcfbc2e619b256f64641e402c7f1a14c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,9 @@
 # requirements.txt is generated dynamically in this project (e.g. make requirements)
 requirements.txt
 
+# junit reports (generated by tox)
+report/
+
 # Byte-compiled / optimized / DLL files
 __pycache__/
 *.py[cod]
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 11cc3049ed15c86b247275f4d2a96fd5590b7070..96313f348eb94e19ad1521760ac99977e0482835 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -2,9 +2,10 @@ default_language_version:
     python: python3
 repos:
 -   repo: https://github.com/ambv/black
-    rev: 21.6b0
+    rev: 22.3.0
     hooks:
     - id: black
+      language_version: python3.9
 -   repo: https://gitlab.com/pycqa/flake8
     rev: 3.9.2
     hooks:
diff --git a/LICENSE.rst b/LICENSE.rst
index 5f8b4edff863e691e6c40ffb30facb001bb4d7ea..65acff406d68f658e56df3ee039b1d7c96403cf2 100644
--- a/LICENSE.rst
+++ b/LICENSE.rst
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2021, Daniel Böckenhoff
+Copyright (c) 2022, Daniel Böckenhoff
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/Makefile b/Makefile
index 57ad3e7cabe0ce840994fe4c9e0002c509f3adfe..88b74aa9e682a2e35f8d0e1d42b27203d27599a7 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,7 @@ clean:
 	rm -rf docs/_build
 	rm -rf docs/source
 	rm -rf dist
+	rm -rf build
 	rm -rf report
 	rm -rf .tox
 	rm -rf .pytest_cache
diff --git a/docs/cookiecutter_input.json b/docs/cookiecutter_input.json
index d74f4d265094da0830030e1ac1282ad422c57278..3fb50daf38030902e8545a4d3d4c969b21773c80 100644
--- a/docs/cookiecutter_input.json
+++ b/docs/cookiecutter_input.json
@@ -1,4 +1,5 @@
 {
+    "_output_dir": "/mnt/data/git/tfields/.git/cookiecutter",
     "_template": "https://gitlab.com/dboe/dough.git",
     "author": "Daniel B\u00f6ckenhoff",
     "continuous_integration": "y",
@@ -9,7 +10,7 @@
     "email": "dboe@ipp.mpg.de",
     "keywords": "tensors, tensor-fields, graphs, mesh, numpy, math",
     "package_name": "tfields",
-    "package_version": "0.3.11",
+    "package_version": "0.4.0",
     "pypi_username": "dboe",
     "remote_namespace": "dboe",
     "remote_provider": "gitlab.mpcdf.mpg.de",
diff --git a/setup.cfg b/setup.cfg
index cc64d54adced9b7da7a96265b16a1b99cfe152f8..9a62e27a171012a4497157eb933f9af06d899e69 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 0.3.11
+current_version = 0.4.0
 tag = True
 commit = True
 message = release-v{new_version}
@@ -63,7 +63,7 @@ all =
 dev =
 	%(docs)s
     %(test)s
-	bump2version  # for incrementing the version
+	bump2version==1.0.0  # for incrementing the version
     twine  # for publishing
 	sphinx  # for documentation
 	pre-commit  # https://pre-commit.com/ for hook managment
diff --git a/setup.py b/setup.py
index 54c339ef6f84457a59df7a3de8c0a1133a3e42e6..fed32f4124460da059f40a27821479e4d69c44aa 100644
--- a/setup.py
+++ b/setup.py
@@ -1,3 +1,3 @@
 from setuptools import setup
 
-setup(version="0.3.11")
+setup(version="0.4.0")
diff --git a/tfields/__init__.py b/tfields/__init__.py
index 3b8e9276f493fbbc1119b3c319ef6f826a5e1b78..71109a81e7606327b7e34426f39e8717a64b18f9 100644
--- a/tfields/__init__.py
+++ b/tfields/__init__.py
@@ -2,4 +2,4 @@
 
 __author__ = """Daniel Böckenhoff"""
 __email__ = "dboe@ipp.mpg.de"
-__version__ = "0.3.11"
+__version__ = "0.4.0"