diff --git a/.gitignore b/.gitignore
index 712e7d29ef61f97c040c83aea67b58dc61c1d820..d1eba1603ad6581ddc3bd48665ac40b764f8c128 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,5 @@
 build
 bin
 
-devices
-
 # Python cache
 __pycache__
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08bb192c35fbbb7f9fbd898c40228c1478953b43..50f80e22b91c9eb913bbf5663e252003e4d891c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,7 +37,6 @@ set(PARSERS header dns dhcp http igmp ssdp coap)
 
 # Subdirectories containing code
 add_subdirectory(src)
-add_subdirectory(devices)
 IF( NOT OPENWRT_CROSSCOMPILING )
     add_subdirectory(test)
 ENDIF()
diff --git a/src/translator/templates/CMakeLists.txt.j2 b/src/translator/templates/CMakeLists.txt.j2
index b29d1b4d718b3e51ad058d8a091b7e38e5048ad6..4c39cebe9ce184aaba6ac34889d171c4700346b2 100644
--- a/src/translator/templates/CMakeLists.txt.j2
+++ b/src/translator/templates/CMakeLists.txt.j2
@@ -4,12 +4,12 @@ cmake_minimum_required(VERSION 3.20)
 set(EXECUTABLE_OUTPUT_PATH ${BIN_DIR})
 
 # Nfqueue C file for device {{device}}
-add_executable({{device}} nfqueues.c)
-target_link_libraries({{device}} pthread)
+add_executable({{nfqueue_name}} nfqueues.c)
+target_link_libraries({{nfqueue_name}} pthread)
 IF( OPENWRT_CROSSCOMPILING )
-target_link_libraries({{device}} jansson mnl nfnetlink nftnl nftables netfilter_queue netfilter_log)
+target_link_libraries({{nfqueue_name}} jansson mnl nfnetlink nftnl nftables netfilter_queue netfilter_log)
 ENDIF()
-target_link_libraries({{device}} nfqueue packet_utils rule_utils)
-target_link_libraries({{device}} ${PARSERS})
-target_include_directories({{device}} PRIVATE ${INCLUDE_DIR} ${INCLUDE_PARSERS_DIR})
-install(TARGETS {{device}} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
+target_link_libraries({{nfqueue_name}} nfqueue packet_utils rule_utils)
+target_link_libraries({{nfqueue_name}} ${PARSERS})
+target_include_directories({{nfqueue_name}} PRIVATE ${INCLUDE_DIR} ${INCLUDE_PARSERS_DIR})
+install(TARGETS {{nfqueue_name}} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
diff --git a/src/translator/translator.py b/src/translator/translator.py
index 336aad1ccccf2280001e33593f454112ced38f54..6bf4f3506272e9b65b599569ac93c55d5e992822 100644
--- a/src/translator/translator.py
+++ b/src/translator/translator.py
@@ -128,6 +128,7 @@ if __name__ == "__main__":
     description = "Translate a device YAML profile to the corresponding pair of NFTables firewall script and NFQueue C source code."
     parser = argparse.ArgumentParser(description=description)
     parser.add_argument("profile", type=str, help="Path to the device YAML profile")
+    parser.add_argument("-n", "--name", type=str, help="Name of the device's NFQueue")
     parser.add_argument("-q", "--nfqueue", type=uint16, default=0, help="NFQueue start index for this profile's policies (must be an integer between 0 and 65535)")
     parser.add_argument("-o", "--output", type=directory, help="Output directory for the generated files")
     # Verdict modes
@@ -173,6 +174,9 @@ if __name__ == "__main__":
         # Get device info
         device = profile["device-info"]
 
+        # Set device's NFQueue name if not provided as argument
+        args.name = args.name if args.name is not None else device["name"]
+
         # Base nfqueue id, will be incremented at each interaction
         nfq_id = args.nfqueue
 
@@ -184,7 +188,7 @@ if __name__ == "__main__":
         }
     
     
-        # Loop over the device's individual policies
+        ## Loop over the device's individual policies
         if "single-policies" in profile:
             for policy_name in profile["single-policies"]:
                 profile_data = profile["single-policies"][policy_name]
@@ -259,7 +263,10 @@ if __name__ == "__main__":
                 fw.write(main)
 
             # Create CMake file
-            cmake_dict = {"device": device["name"]}
+            cmake_dict = {
+                "device":  device["name"],
+                "nfqueue_name": args.name
+            }
             env.get_template("CMakeLists.txt.j2").stream(cmake_dict).dump(f"{args.output}/CMakeLists.txt")