diff --git a/Makefile b/Makefile
index ac230122a7932654a09de9acd50aed37086df30a..8a6d11cc9346496485e3c18dfe20e8416a5a8bd2 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ docs:
 
 # run tests
 tests:
-	python3 -m unittest ${TESTS_FILTER}
+	python3 -m pytest ${TESTS_FILTER}
 
 # check
 check: mypy pylint check-format
diff --git a/requirements_dev.txt b/requirements_dev.txt
index 1d175d6a316575d8a7e073ea344e37f0bb0ee368..e3ff88a2aa8211a37d26ed53d927675bf4ea5eda 100644
--- a/requirements_dev.txt
+++ b/requirements_dev.txt
@@ -4,3 +4,6 @@ pylint
 black
 sphinx
 sphinx_rtd_theme
+pytest
+pytest-asyncio
+pytest-sugar
diff --git a/todos.txt b/todos.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2c56bf33a6694db87f44a1e7dd0d2ab8ec544872
--- /dev/null
+++ b/todos.txt
@@ -0,0 +1,37 @@
+- DuniterPy:
+  - mv reduce_base from document/transaction.py to helpers/money.py
+  - mv amount_in_current_base() from silkaj to helpers/money.py
+    - handle input and output sources (seperate cases with type())
+    - write tests
+  - implement /blockchain/branches BMA path
+  - {Out,In}PutSource: get rid of inline(), inline_condition()
+  - Create a website
+  - implement a class to handle numbers, to access same amount expressed in unit (* 100), decimal, current, previous and future UD values
+  - #106: README.rst -> README.md, handle formatting for setup.py (to PyPi)
+  - Readme: add Silkaj, updates
+  - #66: Migrate DuniterPy to Poetry/pyproject.toml
+  - Tests on all supported Python versions
+  - #103: Switch to Pytest
+  - duniterpy/api/endpoint.py:BMA: rename `server` to `host(name)`
+  - sources: rename `noffset` to `pos` position as in Duniter code. Much easier to understand
+    - I think BMA gives `noffset`. It might be in the jsonschema
+  - CI/CD: check-format called twice: in `format` and `check` jobs:
+    - Separate distincts jobs for each tasks, pylint and mypy are also in the same job
+
+- Duniter:
+  - GVA module: LICENSE
+  - Web admin v2: LICENSE
+
+- Monit:
+  - remove librelois.fr calls from views/{HEAD,Chart}.html
+  - cesium.monnaielibreoccitanie.fr: cesium logo: views/about.html
+
+- Wot-Wizard:
+  - calls to cloudflare
+
+- Gchange:
+  - UD amount
+
+- Presentation for BlockchainHub Graz:
+  - http://cuckooland.free.fr/reveal/LibreCurrencyInAFifthOfATime.html#/
+  - https://forum.monnaie-libre.fr/t/presentation/6707