diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 765f44e..f873a82 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -961,15 +961,7 @@
     return result;
 }
 
-
-struct extProps {
-    uint32_t version;
-    const char * const name;
-};
-#define MEM_TRACKER_EXT_ARRAY_SIZE 0
-
-#define MEM_TRACKER_LAYER_ARRAY_SIZE 1
-static const VkLayerProperties mtGlobalLayers[MEM_TRACKER_LAYER_ARRAY_SIZE] = {
+static const VkLayerProperties mtGlobalLayers[] = {
     {
         "MemTracker",
         VK_API_VERSION,
@@ -984,21 +976,18 @@
         VkExtensionProperties* pProperties)
 {
     /* Mem tracker does not have any global extensions */
-    return util_GetExtensionProperties(MEM_TRACKER_EXT_ARRAY_SIZE, NULL,
-                                       pCount, pProperties);
+    return util_GetExtensionProperties(0, NULL, pCount, pProperties);
 }
 
 VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalLayerProperties(
         uint32_t *pCount,
         VkLayerProperties*    pProperties)
 {
-    return util_GetLayerProperties(MEM_TRACKER_LAYER_ARRAY_SIZE,
-                                   (VkLayerProperties *) mtGlobalLayers,
+    return util_GetLayerProperties(ARRAY_SIZE(mtGlobalLayers),
+                                   mtGlobalLayers,
                                    pCount, pProperties);
 }
 
-#define MEM_TRACKER_DEV_EXT_ARRAY_SIZE 0
-
 VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
         VkPhysicalDevice                            physicalDevice,
         const char*                                 pLayerName,
@@ -1006,8 +995,7 @@
         VkExtensionProperties*                      pProperties)
 {
     /* Mem tracker does not have any physical device extensions */
-    return util_GetExtensionProperties(MEM_TRACKER_DEV_EXT_ARRAY_SIZE, NULL,
-                                       pCount, pProperties);
+    return util_GetExtensionProperties(0, NULL, pCount, pProperties);
 }
 
 VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceLayerProperties(
@@ -1016,7 +1004,7 @@
         VkLayerProperties*                          pProperties)
 {
     /* Mem tracker's physical device layers are the same as global */
-    return util_GetLayerProperties(MEM_TRACKER_LAYER_ARRAY_SIZE, mtGlobalLayers,
+    return util_GetLayerProperties(ARRAY_SIZE(mtGlobalLayers), mtGlobalLayers,
                                    pCount, pProperties);
 }
 
