diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py
index 20ec4a9d967de80834695f67e2a9b6b92959f651..55c272c2ccfea1d4e6ebceb517076cec38d9680c 100644
--- a/gso/services/provisioning_proxy.py
+++ b/gso/services/provisioning_proxy.py
@@ -1,3 +1,7 @@
+"""
+The Provisioning Proxy service, which interacts with LSO running externally.
+LSO is responsible for executing Ansible playbooks, that deploy subscriptions.
+"""
 import json
 import logging
 
@@ -53,7 +57,8 @@ def _send_request(endpoint: str, parameters: dict, process_id: UUIDstr,
 
     callback_url = f'{settings.load_oss_params().GENERAL.public_hostname}' \
                    f'/api/processes/{process_id}/resume'
-    logger.debug(f'[provisioning proxy] provisioning for process {process_id}')
+    logger.debug('[provisioning proxy] provisioning for process %s',
+                 process_id)
 
     parameters.update({'callback': callback_url})
     url = f'{pp_params.scheme}://{pp_params.api_base}/api/{endpoint}'
@@ -61,11 +66,11 @@ def _send_request(endpoint: str, parameters: dict, process_id: UUIDstr,
     request = None
 
     if operation == CUDOperation.POST:
-        request = requests.post(url, json=parameters)
+        request = requests.post(url, json=parameters, timeout=10000)
     elif operation == CUDOperation.PUT:
-        request = requests.put(url, json=parameters)
+        request = requests.put(url, json=parameters, timeout=10000)
     elif operation == CUDOperation.DELETE:
-        request = requests.delete(url, json=parameters)
+        request = requests.delete(url, json=parameters, timeout=10000)
 
     if request.status_code != 200:
         print(request.content)
@@ -136,7 +141,7 @@ def provision_ip_trunk(subscription: IptrunkProvisioning,
 #        'dry_run': dry_run,
 #        'old_subscription': old_subscription,
 #        'subscription': new_subscription
-#        # FIXME missing parameters
+#        # ... missing parameters
 #    }
 #
 #    _send_request('ip_trunk', parameters, process_id, CUDOperation.PUT)
diff --git a/gso/settings.py b/gso/settings.py
index caebdcc34f2ecc16428e8757d6a9b8fb5fdec660..8e8ad08f44ec1efdd8c3860e4e602e9e4d23e7cd 100644
--- a/gso/settings.py
+++ b/gso/settings.py
@@ -90,7 +90,7 @@ def load_oss_params() -> OSSParams:
     look for OSS_PARAMS_FILENAME in the environment and load the parameters
     from that file.
     """
-    with open(os.environ['OSS_PARAMS_FILENAME']) as file:
+    with open(os.environ['OSS_PARAMS_FILENAME'], encoding='utf-8') as file:
         return OSSParams(**json.loads(file.read()))
 
 
diff --git a/gso/workflows/__init__.py b/gso/workflows/__init__.py
index 268bada22e4b28b76ffc3e1371b1e23d2a8c2c47..16f97832e58ceb6963249fecdcd696798deb45e2 100644
--- a/gso/workflows/__init__.py
+++ b/gso/workflows/__init__.py
@@ -1,3 +1,6 @@
+"""
+init class that imports all workflows into GSO.
+"""
 from orchestrator.workflows import LazyWorkflowInstance
 
 LazyWorkflowInstance("gso.workflows.device.create_device", "create_device")