diff --git a/liblava/base/device.cpp b/liblava/base/device.cpp
index 1e37a26e2bb283b60c7db2711b0228ce0aae7de7..9b7861b6aa5f8ac0686128e33c79d86968370c7c 100644
--- a/liblava/base/device.cpp
+++ b/liblava/base/device.cpp
@@ -20,50 +20,53 @@ namespace lava {
         return lava::add_dedicated_queues(queue_family_infos, physical_device->get_queue_family_properties(), priority);
     }
 
-    queue_verify_result device::create_param::verify_queues() const {
+    verify_queues_result device::create_param::verify_queues() const {
         return lava::verify_queues(queue_family_infos, physical_device->get_queue_family_properties());
     }
 
+    void log_verify_queues_failed(verify_queues_result result) {
+        switch (result) {
+        case verify_queues_result::empty_list: {
+            log()->error("create device - verify queues - param with empty list");
+            break;
+        }
+        case verify_queues_result::no_properties: {
+            log()->error("create device - verify queues - no device family properties");
+            break;
+        }
+        case verify_queues_result::duplicate_family_index: {
+            log()->error("create device - verify queues - duplicate family index");
+            break;
+        }
+        case verify_queues_result::no_family_index: {
+            log()->error("create device - verify queues - family index is not available");
+            break;
+        }
+        case verify_queues_result::no_queues: {
+            log()->error("create device - verify queues - undefined queues in family");
+            break;
+        }
+        case verify_queues_result::too_many_queues: {
+            log()->error("create device - verify queues - number of queues is incorrect");
+            break;
+        }
+        case verify_queues_result::no_compatible_flags: {
+            log()->error("create device - verify queues - no compatible flags in queue");
+            break;
+        }
+        default:
+            log()->error("create device - verify queues");
+        }
+    }
+
     bool device::create(create_param::ref param) {
         physical_device = param.physical_device;
         if (!physical_device)
             return false;
 
         auto verify_result = param.verify_queues();
-        if (verify_result != queue_verify_result::ok) {
-            switch (verify_result) {
-            case queue_verify_result::empty_list: {
-                log()->error("create device - verify queues - param with empty list");
-                break;
-            }
-            case queue_verify_result::no_properties: {
-                log()->error("create device - verify queues - no device family properties");
-                break;
-            }
-            case queue_verify_result::duplicate_family_index: {
-                log()->error("create device - verify queues - duplicate family index");
-                break;
-            }
-            case queue_verify_result::no_family_index: {
-                log()->error("create device - verify queues - family index is not available");
-                break;
-            }
-            case queue_verify_result::no_queues: {
-                log()->error("create device - verify queues - undefined queues in family");
-                break;
-            }
-            case queue_verify_result::too_many_queues: {
-                log()->error("create device - verify queues - number of queues is incorrect");
-                break;
-            }
-            case queue_verify_result::no_compatible_flags: {
-                log()->error("create device - verify queues - no compatible flags in queue");
-                break;
-            }
-            default:
-                log()->error("create device - verify queues");
-            }
-
+        if (verify_result != verify_queues_result::ok) {
+            log_verify_queues_failed(verify_result);
             return false;
         }
 
diff --git a/liblava/base/device.hpp b/liblava/base/device.hpp
index abc96daee5f5886b76bbdc44f24579ebcfa78b78..ecff605d5e9c6d41a8f0c399e0ce0e1139de8890 100644
--- a/liblava/base/device.hpp
+++ b/liblava/base/device.hpp
@@ -46,7 +46,7 @@ namespace lava {
 
             bool add_dedicated_queues(r32 priority = 1.f);
 
-            queue_verify_result verify_queues() const;
+            verify_queues_result verify_queues() const;
         };
 
         ~device() {
diff --git a/liblava/base/queue.cpp b/liblava/base/queue.cpp
index 7fc13314f512cce59ded73ec01de95fcd4c4dd58..5aa7c0f3554e5f9ae36ef33e4c220ed3335de0ea 100644
--- a/liblava/base/queue.cpp
+++ b/liblava/base/queue.cpp
@@ -17,11 +17,14 @@ namespace lava {
         list.clear();
 
         for (auto& queue_family : properties) {
-            queue_family_info info;
-            info.family_index = list.size();
-            for (auto queue_count = 0; queue_count < queue_family.queueCount; ++queue_count)
-                info.queues.emplace_back(queue_family.queueFlags, 1.f);
-            list.push_back(info);
+            queue_family_info family_info;
+            family_info.family_index = list.size();
+            for (auto queue_count = 0; queue_count < queue_family.queueCount; ++queue_count) {
+                queue_info info{ queue_family.queueFlags, 1.f };
+                family_info.queues.push_back(info);
+            }
+
+            list.push_back(family_info);
         }
     }
 
@@ -36,7 +39,7 @@ namespace lava {
         queue_family_info family_info;
         family_info.family_index = family_index;
         family_info.add(flags, count, priority);
-        list.emplace_back(family_info);
+        list.push_back(family_info);
     }
 
     bool add_queues(queue_family_info::list& list, VkQueueFamilyPropertiesList const& properties, VkQueueFlags flags, ui32 count, r32 priority) {
@@ -84,46 +87,49 @@ namespace lava {
             return false;
 
         for (auto family_index = 1u; family_index < properties.size(); ++family_index) {
-            queue_family_info info;
-            info.family_index = family_index;
-            for (auto queue_count = 0; queue_count < properties.at(family_index).queueCount; ++queue_count)
-                info.queues.emplace_back(properties.at(family_index).queueFlags, priority);
-            list.push_back(info);
+            queue_family_info family_info;
+            family_info.family_index = family_index;
+            for (auto queue_count = 0; queue_count < properties.at(family_index).queueCount; ++queue_count) {
+                queue_info info{ properties.at(family_index).queueFlags, priority };
+                family_info.queues.push_back(info);
+            }
+
+            list.push_back(family_info);
         }
 
         return true;
     }
 
-    queue_verify_result verify_queues(queue_family_info::list const& list, VkQueueFamilyPropertiesList const& properties) {
+    verify_queues_result verify_queues(queue_family_info::list const& list, VkQueueFamilyPropertiesList const& properties) {
         if (list.empty())
-            return queue_verify_result::empty_list;
+            return verify_queues_result::empty_list;
 
         if (properties.empty())
-            return queue_verify_result::no_properties;
+            return verify_queues_result::no_properties;
 
         index_list families;
         for (auto& info : list) {
             if (contains(families, info.family_index))
-                return queue_verify_result::duplicate_family_index;
+                return verify_queues_result::duplicate_family_index;
 
             families.push_back(info.family_index);
 
             if (info.family_index > properties.size() - 1)
-                return queue_verify_result::no_family_index;
+                return verify_queues_result::no_family_index;
 
             if (info.queues.empty())
-                return queue_verify_result::no_queues;
+                return verify_queues_result::no_queues;
 
             if (info.count() > properties[info.family_index].queueCount)
-                return queue_verify_result::too_many_queues;
+                return verify_queues_result::too_many_queues;
 
             for (auto& queue : info.queues) {
                 if ((properties[info.family_index].queueFlags & queue.flags) != queue.flags)
-                    return queue_verify_result::no_compatible_flags;
+                    return verify_queues_result::no_compatible_flags;
             }
         }
 
-        return queue_verify_result::ok;
+        return verify_queues_result::ok;
     }
 
 } // namespace lava
diff --git a/liblava/base/queue.hpp b/liblava/base/queue.hpp
index 385304d619f80f2c061729e0665817ae17460500..9882e65fab18dd8f13891800e9c3ba355e3b262b 100644
--- a/liblava/base/queue.hpp
+++ b/liblava/base/queue.hpp
@@ -39,8 +39,10 @@ namespace lava {
         queue_info::list queues;
 
         void add(VkQueueFlags flags, ui32 count = 1, r32 priority = 1.f) {
-            for (auto i = 0u; i < count; ++i)
-                queues.emplace_back(flags, priority);
+            for (auto i = 0u; i < count; ++i) {
+                queue_info info{ flags, priority };
+                queues.push_back(info);
+            }
         }
 
         ui32 count() const {
@@ -63,7 +65,7 @@ namespace lava {
                               VkQueueFamilyPropertiesList const& properties,
                               r32 priority = 1.f);
 
-    enum class queue_verify_result : type {
+    enum class verify_queues_result : type {
         ok = 0,
         empty_list,
         no_properties,
@@ -73,6 +75,6 @@ namespace lava {
         too_many_queues,
         no_compatible_flags
     };
-    queue_verify_result verify_queues(queue_family_info::list const& list, VkQueueFamilyPropertiesList const& properties);
+    verify_queues_result verify_queues(queue_family_info::list const& list, VkQueueFamilyPropertiesList const& properties);
 
 } // namespace lava
diff --git a/tests/unit.cpp b/tests/unit.cpp
index dbae9908505f20409c30c45888709b9c9f920952..6d4556918d189eb99bf3e44c8fa1928632dc96e1 100644
--- a/tests/unit.cpp
+++ b/tests/unit.cpp
@@ -48,7 +48,7 @@ TEST_CASE("queue setup - GeForce GTX 1060", "[queue]") {
         REQUIRE(add_queues(list, properties, VK_QUEUE_TRANSFER_BIT, 1));
     }
 
-    REQUIRE(verify_queues(list, properties) == queue_verify_result::ok);
+    REQUIRE(verify_queues(list, properties) == verify_queues_result::ok);
 }
 
 TEST_CASE("queue setup - Radeon RX 580 Series", "[queue]") {
@@ -87,7 +87,7 @@ TEST_CASE("queue setup - Radeon RX 580 Series", "[queue]") {
         REQUIRE_FALSE(add_queues(list, properties, VK_QUEUE_COMPUTE_BIT, 1));
     }
 
-    REQUIRE(verify_queues(list, properties) == queue_verify_result::ok);
+    REQUIRE(verify_queues(list, properties) == verify_queues_result::ok);
 }
 
 TEST_CASE("queue setup - Intel(R) HD Graphics 620", "[queue]") {
@@ -102,13 +102,13 @@ TEST_CASE("queue setup - Intel(R) HD Graphics 620", "[queue]") {
     SECTION("no dedicated queues available") {
         REQUIRE_FALSE(add_dedicated_queues(list, properties));
 
-        REQUIRE(verify_queues(list, properties) == queue_verify_result::empty_list);
+        REQUIRE(verify_queues(list, properties) == verify_queues_result::empty_list);
     }
 
     SECTION("no more queues available") {
         REQUIRE(add_queues(list, properties, VK_QUEUE_GRAPHICS_BIT, 1));
         REQUIRE_FALSE(add_queues(list, properties, VK_QUEUE_COMPUTE_BIT, 1));
 
-        REQUIRE(verify_queues(list, properties) == queue_verify_result::ok);
+        REQUIRE(verify_queues(list, properties) == verify_queues_result::ok);
     }
 }