diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py
index 9bfbf598a49f5db7c535c381d3c9a7c4cc4545ed..50362903dda46f834c7ab0cfe6dfba323e82eb57 100644
--- a/hooks/post_gen_project.py
+++ b/hooks/post_gen_project.py
@@ -4,9 +4,9 @@ import shutil
 import subprocess
 import sys
 
-import yaml
+import json
 
-MANIFEST = "conditional_files.yaml"
+MANIFEST = "conditional_files.json"
 FIRST_RUN_WIN = "first_run.bat"
 FIRST_RUN = "first_run.sh"
 
@@ -22,7 +22,7 @@ def delete_resource(resource):
 
 def delete_resources_for_disabled_features():
     with open(MANIFEST) as manifest_file:
-        manifest = yaml.safe_load(manifest_file)
+        manifest = json.load(manifest_file)
         for feature in manifest['features']:
             if not feature['enabled']:
                 print("removing resources for disabled feature {}...".format(feature['name']))
diff --git a/{{cookiecutter.project_name}}/.pre-commit-config.yaml b/{{cookiecutter.project_name}}/.pre-commit-config.yaml
index 74f121061069c8ef73d40769b82398a872272f09..1fff6784600ec3616cf1dff2c20a3b9ad74a28d3 100644
--- a/{{cookiecutter.project_name}}/.pre-commit-config.yaml
+++ b/{{cookiecutter.project_name}}/.pre-commit-config.yaml
@@ -35,6 +35,7 @@ repos:
           - "--pretty"
           - "--show-error-codes"
           - "--no-warn-return-any"
+          - "--implicit-reexport"
           - "--allow-untyped-decorators"
         exclude: >
           (?x)^(
diff --git a/{{cookiecutter.project_name}}/conditional_files.json b/{{cookiecutter.project_name}}/conditional_files.json
new file mode 100644
index 0000000000000000000000000000000000000000..5169557df8bcbaa31cd23c828c1f3fee0ad96294
--- /dev/null
+++ b/{{cookiecutter.project_name}}/conditional_files.json
@@ -0,0 +1,29 @@
+{
+  "features": [
+    {
+      "name": "Redis support",
+      "enabled": {{cookiecutter.add_redis|lower}},
+      "resources": [
+        "src/services/redis.py",
+        "src/api/redis_api"
+      ]
+    },
+    {
+      "name": "Systemd support",
+      "enabled": {{cookiecutter.add_systemd|lower}},
+      "resources": [
+        "systemd"
+      ]
+    },
+    {
+      "name": "Dummy DB model",
+      "enabled": {{cookiecutter.add_dummy_model|lower}},
+      "resources": [
+        "src/models/dummy_db_model.py",
+        "migrations/versions/7ae297ab5ac1_created_dummy_model.py",
+        "tests/dummy_db_test.py",
+        "src/api/dummy_db"
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/{{cookiecutter.project_name}}/conditional_files.yaml b/{{cookiecutter.project_name}}/conditional_files.yaml
deleted file mode 100644
index cf115711f5c036ec799fe7055ee6ab6c4a57a37c..0000000000000000000000000000000000000000
--- a/{{cookiecutter.project_name}}/conditional_files.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-features:
-  - name: Redis support
-    enabled: {{cookiecutter.add_redis|lower}}
-    resources:
-      - src/services/redis.py
-      - src/api/redis_api
-
-  - name: Systemd support
-    enabled: {{cookiecutter.add_systemd|lower}}
-    resources:
-      - systemd
-
-  - name: Dummy DB model
-    enabled: {{cookiecutter.add_dummy_model|lower}}
-    resources:
-      - src/models/dummy_db_model.py
-      - migrations/versions/7ae297ab5ac1_created_dummy_model.py
-      - tests/dummy_db_test.py
-      - src/api/dummy_db
\ No newline at end of file
diff --git a/{{cookiecutter.project_name}}/src/server.py b/{{cookiecutter.project_name}}/src/server.py
index 59ac1cbd7227e5b566da3cb8a0d469558d0a56a1..c56950255b9a11e339794ccdb78719b64b74198d 100644
--- a/{{cookiecutter.project_name}}/src/server.py
+++ b/{{cookiecutter.project_name}}/src/server.py
@@ -13,18 +13,15 @@ from src.services.redis import redis
 {% endif %}
 from src.settings import Settings, settings
 
-config = {
-    "handlers": [
-        {
-            "sink": sys.stderr,
-            "backtrace": False,
-            "diagnose": settings.is_dev,
-            "catch": False,
-            "colorize": settings.is_dev,
-        },
-    ]
-}
-logger.configure(**config)
+logger.configure(
+    handlers=[{
+        "sink": sys.stderr,
+        "backtrace": False,
+        "diagnose": settings.is_dev,
+        "catch": False,
+        "colorize": settings.is_dev,
+    }]
+)
 
 app = FastAPI(
     title="{{cookiecutter.project_name}}",
diff --git a/{{cookiecutter.project_name}}/tests/conftest.py b/{{cookiecutter.project_name}}/tests/conftest.py
index 9513830e95a6a5b1ffffd638c209f10589ad3fea..a41373d4bdb7c1b1e9a58d1b70e50b0e69a71c89 100644
--- a/{{cookiecutter.project_name}}/tests/conftest.py
+++ b/{{cookiecutter.project_name}}/tests/conftest.py
@@ -5,7 +5,7 @@ import alembic.config
 import pytest
 from fastapi.testclient import TestClient
 from sqlalchemy import create_engine
-from sqlalchemy.engine import Connection
+from sqlalchemy.engine import Connection, Engine
 from sqlalchemy.engine.url import URL, make_url
 from sqlalchemy.exc import ProgrammingError
 
@@ -15,7 +15,7 @@ from src.settings import settings
 warnings.filterwarnings("ignore", category=DeprecationWarning)
 
 
-def get_engine():
+def get_engine() -> Engine:
     pg_db_url = make_url(
         URL(
             drivername=settings.db_driver,
@@ -30,7 +30,7 @@ def get_engine():
     return engine
 
 
-def run_psql_without_transaction(command: str):
+def run_psql_without_transaction(command: str) -> None:
     engine = get_engine()
     connection = engine.connect()
     connection.connection.set_isolation_level(0)
@@ -40,7 +40,7 @@ def run_psql_without_transaction(command: str):
 
 
 @pytest.fixture(scope="session")
-def create_database():
+def create_database() -> None:
     try:
         run_psql_without_transaction(f"CREATE DATABASE {settings.postgres_db}")
     except ProgrammingError:
diff --git a/{{cookiecutter.project_name}}/tests/dummy_db_test.py b/{{cookiecutter.project_name}}/tests/dummy_db_test.py
index 4c097857803125ff4b8851e0b7a48d813a83bc72..89bb371e221af8615cc5e67167a0f52f0763b12d 100644
--- a/{{cookiecutter.project_name}}/tests/dummy_db_test.py
+++ b/{{cookiecutter.project_name}}/tests/dummy_db_test.py
@@ -25,7 +25,7 @@ def test_delete_dummy_obj(
 ) -> None:
     with app_fixture as client:
         put_result = client.put(
-            f"/dummy_db_obj/",
+            "/dummy_db_obj/",
             json=test_conf.request_data["json"],
         )
         assert put_result.status_code == 200