diff --git a/examples/example1 - preset.py b/examples/example1 - preset.py
index 11ced3f..1d35a42 100644
--- a/examples/example1 - preset.py	
+++ b/examples/example1 - preset.py	
@@ -14,7 +14,7 @@
 # more client identifiers can be found in settings.py
 
 session = tls_client.Session(
-    client_identifier="chrome112",
+    client_identifier="chrome_112",
     random_tls_extension_order=True
 )
 
diff --git a/tls_client/sessions.py b/tls_client/sessions.py
index e625669..6733ea3 100644
--- a/tls_client/sessions.py
+++ b/tls_client/sessions.py
@@ -308,6 +308,7 @@ def execute_request(
         params: Optional[dict] = None,  # Optional[dict[str, str]]
         data: Optional[Union[str, dict]] = None,
         headers: Optional[dict] = None,  # Optional[dict[str, str]]
+        header_order: Optional[List[str]] = None,
         cookies: Optional[dict] = None,  # Optional[dict[str, str]]
         json: Optional[dict] = None,  # Optional[dict]
         allow_redirects: Optional[bool] = False,
@@ -354,6 +355,11 @@ def execute_request(
 
             headers = merged_headers
 
+        # Ability to overwrite self.header_order for flexibility
+        request_header_order = self.header_order
+        if header_order:
+            request_header_order = header_order
+
         # --- Cookies --------------------------------------------------------------------------------------------------
         cookies = cookies or {}
         # Merge with session cookies
@@ -394,7 +400,7 @@ def execute_request(
             "withDebug": self.debug,
             "catchPanics": self.catch_panics,
             "headers": dict(headers),
-            "headerOrder": self.header_order,
+            "headerOrder": request_header_order,
             "insecureSkipVerify": insecure_skip_verify,
             "isByteRequest": is_byte_request,
             "additionalDecode": self.additional_decode,