cleanup: address review findings
diff --git a/loader/loader.c b/loader/loader.c
index d82e269..03186dc 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -5205,7 +5205,7 @@
     return true;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL vkLayerCreateDevice(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
+VKAPI_ATTR VkResult VKAPI_CALL loader_layer_create_device(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
 						   const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA) {
     VkResult res;
     VkPhysicalDevice internal_device = VK_NULL_HANDLE;
@@ -5331,7 +5331,7 @@
     return res;
 }
 
-VKAPI_ATTR void VKAPI_CALL vkLayerDestroyDevice(VkDevice device, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction){
+VKAPI_ATTR void VKAPI_CALL loader_layer_destroy_device(VkDevice device, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction){
     struct loader_device *dev;
 
     if (device == VK_NULL_HANDLE) {
@@ -5511,8 +5511,8 @@
         create_info_disp2.sType = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO;
         create_info_disp2.function = VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK;
 
-        create_info_disp2.u.layerDevice.pfnLayerCreateDevice = vkLayerCreateDevice;
-        create_info_disp2.u.layerDevice.pfnLayerDestroyDevice = vkLayerDestroyDevice;
+        create_info_disp2.u.layerDevice.pfnLayerCreateDevice = loader_layer_create_device;
+        create_info_disp2.u.layerDevice.pfnLayerDestroyDevice = loader_layer_destroy_device;
 
         create_info_disp2.pNext = loader_create_info.pNext;
         loader_create_info.pNext = &create_info_disp2;
diff --git a/loader/loader.h b/loader/loader.h
index af69800..685df96 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -505,8 +505,9 @@
 
 void loaderActivateInstanceLayerExtensions(struct loader_instance *inst, VkInstance created_inst);
 
-VkResult vkLayerCreateDevice(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
+VkResult loader_layer_create_device(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
 			     const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA);
+void loader_layer_destroy_device(VkDevice device, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction);
 
 VkResult loader_create_device_chain(const VkPhysicalDevice pd, const VkDeviceCreateInfo *pCreateInfo,
                                     const VkAllocationCallbacks *pAllocator, const struct loader_instance *inst,
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 9d10d07..6a739b6 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -753,29 +753,22 @@
 LOADER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
                                                             const VkAllocationCallbacks *pAllocator, VkDevice *pDevice) {
     loader_platform_thread_lock_mutex(&loader_lock);
-    VkResult res = vkLayerCreateDevice(NULL, physicalDevice, pCreateInfo, pAllocator, pDevice, NULL, NULL);
+    VkResult res = loader_layer_create_device(NULL, physicalDevice, pCreateInfo, pAllocator, pDevice, NULL, NULL);
     loader_platform_thread_unlock_mutex(&loader_lock);
     return res;
 }
 
 LOADER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(VkDevice device, const VkAllocationCallbacks *pAllocator) {
     const VkLayerDispatchTable *disp;
-    struct loader_device *dev;
 
     if (device == VK_NULL_HANDLE) {
         return;
     }
+    disp = loader_get_dispatch(device);
 
     loader_platform_thread_lock_mutex(&loader_lock);
 
-    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, NULL);
-    const struct loader_instance *inst = icd_term->this_instance;
-    disp = loader_get_dispatch(device);
-
-    disp->DestroyDevice(device, pAllocator);
-    dev->chain_device = NULL;
-    dev->icd_device = NULL;
-    loader_remove_logical_device(inst, icd_term, dev, pAllocator);
+    loader_layer_destroy_device(device, pAllocator, disp->DestroyDevice);
 
     loader_platform_thread_unlock_mutex(&loader_lock);
 }