diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt
index 85b25a1..7b3b97b 100644
--- a/layers/CMakeLists.txt
+++ b/layers/CMakeLists.txt
@@ -83,7 +83,7 @@
 	vk_struct_graphviz_helper.h
 )
 
-#run_vk_layer_generate(Generic generic_layer.cpp)
+run_vk_layer_generate(Generic generic_layer.cpp)
 run_vk_layer_generate(APIDump api_dump.cpp)
 run_vk_layer_generate(ObjectTracker object_track.cpp)
 run_vk_layer_generate(Threading threading.cpp)
@@ -104,7 +104,7 @@
 add_vk_layer(ParamChecker param_checker.cpp vk_layer_debug_marker_table.cpp vk_layer_table.cpp)
 add_vk_layer(ScreenShot screenshot.cpp vk_layer_table.cpp)
 # generated
-#add_vk_layer(Generic generic_layer.cpp vk_layer_table.cpp)
+add_vk_layer(Generic generic_layer.cpp vk_layer_table.cpp)
 add_vk_layer(APIDump api_dump.cpp vk_layer_table.cpp)
 add_vk_layer(ObjectTracker object_track.cpp vk_layer_table.cpp)
 add_vk_layer(Threading threading.cpp vk_layer_table.cpp)
diff --git a/layers/generic.h b/layers/generic.h
index d72ab31..d74d985 100644
--- a/layers/generic.h
+++ b/layers/generic.h
@@ -27,14 +27,13 @@
 
 #ifndef GENERIC_H
 #define GENERIC_H
-#include "vkLayer.h"
+#include "vk_layer.h"
 
 /*
  * This file contains static functions for the generated layer Generic
  */
 
-#define LAYER_PROPS_ARRAY_SIZE 1
-static const VkLayerProperties layerProps[LAYER_PROPS_ARRAY_SIZE] = {
+static const VkLayerProperties globalLayerProps[] = {
     {
         "Generic",
         VK_API_VERSION,                 // specVersion
@@ -43,8 +42,7 @@
     }
 };
 
-#define LAYER_DEV_PROPS_ARRAY_SIZE 1
-static const VkLayerProperties layerDevProps[LAYER_DEV_PROPS_ARRAY_SIZE] = {
+static const VkLayerProperties deviceLayerProps[] = {
     {
         "Generic",
         VK_API_VERSION,                 // specVersion
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index be361a8..ccb6056 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -216,8 +216,7 @@
             ggep_body.append('%s' % self.lineinfo.get())
         else:
             ggep_body.append('%s' % self.lineinfo.get())
-            ggep_body.append('#define LAYER_GLOBAL_PROPS_ARRAY_SIZE 1')
-            ggep_body.append('static const VkLayerProperties globalLayerProps[LAYER_GLOBAL_PROPS_ARRAY_SIZE] = {')
+            ggep_body.append('static const VkLayerProperties globalLayerProps[] = {')
             ggep_body.append('    {')
             ggep_body.append('        "%s",' % layer)
             ggep_body.append('        VK_API_VERSION, // specVersion')
@@ -231,7 +230,7 @@
         ggep_body.append('')
         ggep_body.append('VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalLayerProperties(uint32_t *pCount,  VkLayerProperties* pProperties)')
         ggep_body.append('{')
-        ggep_body.append('    return util_GetLayerProperties(LAYER_GLOBAL_PROPS_ARRAY_SIZE, globalLayerProps, pCount, pProperties);')
+        ggep_body.append('    return util_GetLayerProperties(ARRAY_SIZE(globalLayerProps), globalLayerProps, pCount, pProperties);')
         ggep_body.append('}')
         return "\n".join(ggep_body)
 
@@ -246,8 +245,7 @@
             gpdlp_body.append('%s' % self.lineinfo.get())
         else:
             gpdlp_body.append('%s' % self.lineinfo.get())
-            gpdlp_body.append('#define LAYER_DEVICE_ARRAY_SIZE 1')
-            gpdlp_body.append('static const VkLayerProperties deviceLayerProps[LAYER_DEVICE_ARRAY_SIZE] = {')
+            gpdlp_body.append('static const VkLayerProperties deviceLayerProps[] = {')
             gpdlp_body.append('    {')
             gpdlp_body.append('        "%s",' % layer)
             gpdlp_body.append('        VK_API_VERSION,')
@@ -257,7 +255,7 @@
             gpdlp_body.append('};')
         gpdlp_body.append('VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t *pCount, VkLayerProperties* pProperties)')
         gpdlp_body.append('{')
-        gpdlp_body.append('    return util_GetLayerProperties(LAYER_DEVICE_ARRAY_SIZE, deviceLayerProps, pCount, pProperties);')
+        gpdlp_body.append('    return util_GetLayerProperties(ARRAY_SIZE(deviceLayerProps), deviceLayerProps, pCount, pProperties);')
         gpdlp_body.append('}')
         gpdlp_body.append('')
         return "\n".join(gpdlp_body)
@@ -539,7 +537,7 @@
 class GenericLayerSubcommand(Subcommand):
     def generate_header(self):
         gen_header = []
-        func_body.append('%s' % self.lineinfo.get())
+        gen_header.append('%s' % self.lineinfo.get())
         gen_header.append('#include <stdio.h>')
         gen_header.append('#include <stdlib.h>')
         gen_header.append('#include <string.h>')
@@ -554,7 +552,7 @@
         gen_header.append('#include "vk_layer_table.h"')
         gen_header.append('#include "vk_layer_extension_utils.h"')
         gen_header.append('')
-        gen_header.append('#include "generic.h')
+        gen_header.append('#include "generic.h"')
         gen_header.append('')
         gen_header.append('static LOADER_PLATFORM_THREAD_ONCE_DECLARATION(initOnce);')
         gen_header.append('struct devExts {')
