diff --git a/src/core/nginx.c b/src/core/nginx.c
index 17a3d10..0a0233f 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -2,6 +2,7 @@
 #include <nginx.h>
 
 #include <ngx_config.h>
+
 #include <ngx_string.h>
 #include <ngx_errno.h>
 #include <ngx_time.h>
@@ -12,6 +13,7 @@
 #include <ngx_server.h>
 #include <ngx_connection.h>
 #include <ngx_listen.h>
+#include <ngx_conf_file.h>
 
 /* STUB */
 #include <ngx_http.h>
@@ -62,6 +64,7 @@
                   ngx_create_array(ngx_pool, 10, sizeof(ngx_str_t)), 1);
     conf.pool = ngx_pool;
     conf.log = &ngx_log;
+    conf.type = NGX_CORE_MODULE_TYPE;
 
     conf_file.len = sizeof("nginx.conf") - 1;
     conf_file.data = "nginx.conf";
diff --git a/src/core/ngx_config_file.c b/src/core/ngx_conf_file.c
similarity index 98%
rename from src/core/ngx_config_file.c
rename to src/core/ngx_conf_file.c
index 79d7218..6b77121 100644
--- a/src/core/ngx_config_file.c
+++ b/src/core/ngx_conf_file.c
@@ -1,7 +1,7 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
 
 
 static int argument_number[] = {
@@ -75,7 +75,9 @@
         name = (ngx_str_t *) cf->args->elts;
 
         for (i = 0; ngx_modules[i]; i++) {
-            if (cf->type != ngx_modules[i]->type) {
+            if (ngx_modules[i]->type != NULL
+                && ngx_modules[i]->type != cf->type)
+            {
                 continue;
             }
 
@@ -88,7 +90,9 @@
                 if (name->len == cmd->name.len
                     && ngx_strcmp(name->data, cmd->name.data) == 0)
                 {
+
 ngx_log_debug(cf->log, "command '%s'" _ cmd->name.data);
+
                     cmd->set(cf, cmd, NULL);
                 }
 
diff --git a/src/core/ngx_config_file.h b/src/core/ngx_conf_file.h
similarity index 76%
rename from src/core/ngx_config_file.h
rename to src/core/ngx_conf_file.h
index 97a4d2a..cab61a3 100644
--- a/src/core/ngx_config_file.h
+++ b/src/core/ngx_conf_file.h
@@ -1,5 +1,5 @@
-#ifndef _NGX_HTTP_CONFIG_FILE_H_INCLUDED_
-#define _NGX_HTTP_CONFIG_FILE_H_INCLUDED_
+#ifndef _NGX_HTTP_CONF_FILE_H_INCLUDED_
+#define _NGX_HTTP_CONF_FILE_H_INCLUDED_
 
 
 #include <ngx_config.h>
@@ -12,21 +12,25 @@
 #include <ngx_array.h>
 
 
-#define NGX_CONF_NOARGS    1
-#define NGX_CONF_TAKE1     2
-#define NGX_CONF_TAKE2     4
+#define NGX_CONF_NOARGS      1
+#define NGX_CONF_TAKE1       2
+#define NGX_CONF_TAKE2       4
+#define NGX_CONF_ARGS_NUMBER 0x0ffff
+#define NGX_CONF_ANY         0x10000
+#define NGX_CONF_BLOCK       0x20000
 
-#define NGX_CONF_ANY       0x10000
-#define NGX_CONF_BLOCK     0x20000
 
-#define NGX_CONF_UNSET    -1
+#define NGX_CONF_UNSET       -1
 
 
+#define NGX_CONF_ERROR       (char *) -1
+
 #define NGX_CONF_BLOCK_DONE  1
 #define NGX_CONF_FILE_DONE   2
 
 
-#define NGX_CONF_ERROR       (char *) -1
+#define NGX_CORE_MODULE_TYPE 0x45524f43  /* "CORE" */
+
 
 typedef struct ngx_conf_s  ngx_conf_t;
 
@@ -80,4 +84,4 @@
 extern ngx_module_t *ngx_modules[];
 
 
-#endif _NGX_HTTP_CONFIG_FILE_H_INCLUDED_
+#endif _NGX_HTTP_CONF_FILE_H_INCLUDED_
diff --git a/src/core/ngx_modules.c b/src/core/ngx_modules.c
index ad9372b..e07c4e6 100644
--- a/src/core/ngx_modules.c
+++ b/src/core/ngx_modules.c
@@ -1,7 +1,7 @@
 
 #include <ngx_config.h>
 
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
 
 
 extern ngx_module_t  ngx_http_header_filter_module;
diff --git a/src/http/modules/ngx_http_index_handler.c b/src/http/modules/ngx_http_index_handler.c
index faddd74..a858237 100644
--- a/src/http/modules/ngx_http_index_handler.c
+++ b/src/http/modules/ngx_http_index_handler.c
@@ -1,10 +1,12 @@
 
 #include <ngx_config.h>
+
 #include <ngx_core.h>
 #include <ngx_errno.h>
 #include <ngx_string.h>
 #include <ngx_files.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
+
 #include <ngx_http.h>
 #include <ngx_http_config.h>
 #include <ngx_http_index_handler.h>
diff --git a/src/http/ngx_http.h b/src/http/ngx_http.h
index b6bcfe7..4d41bf2 100644
--- a/src/http/ngx_http.h
+++ b/src/http/ngx_http.h
@@ -3,13 +3,14 @@
 
 
 #include <ngx_config.h>
+
 #include <ngx_types.h>
 #include <ngx_string.h>
 #include <ngx_table.h>
 #include <ngx_hunk.h>
 #include <ngx_files.h>
 #include <ngx_connection.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
 
 
 #define NGX_HTTP_VERSION_10       1000
diff --git a/src/http/ngx_http_config.c b/src/http/ngx_http_config.c
index eb09d57..205b41b 100644
--- a/src/http/ngx_http_config.c
+++ b/src/http/ngx_http_config.c
@@ -1,7 +1,13 @@
 
+/* TODO:
+    ngx_http_conf_ctx_t   ctx; on stack or in pool ? */
+
+
 #include <ngx_config.h>
+
 #include <ngx_core.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
+
 #include <ngx_http.h>
 #include <ngx_http_core.h>
 #include <ngx_http_config.h>
@@ -38,10 +44,11 @@
 ngx_module_t  ngx_http_module = {
     NULL,                                  /* module context */
     ngx_http_commands,                     /* module directives */
-    0,                                     /* module type */
+    NGX_CORE_MODULE_TYPE,                  /* module type */
     NULL                                   /* init module */
 };
 
+
 static ngx_command_t  ngx_http_core_commands[] = {
 
     {ngx_string("server"),
@@ -83,7 +90,7 @@
 {
     int  i;
     ngx_http_module_t    *module;
-    ngx_http_conf_ctx_t  *ctx;
+    ngx_http_conf_ctx_t   ctx;
 
     for (i = 0; ngx_modules[i]; i++) {
         if (ngx_modules[i]->type != NGX_HTTP_MODULE_TYPE) {
@@ -98,9 +105,9 @@
                   ngx_pcalloc(cf->pool, sizeof(void *) * ngx_http_max_module),
                   NGX_CONF_ERROR);
 
-    ctx->srv_conf = NULL;
-    ctx->loc_conf = null_loc_conf;
-    ctx->locations = NULL;
+    ctx.srv_conf = NULL;
+    ctx.loc_conf = null_loc_conf;
+    ctx.locations = NULL;
 
     for (i = 0; ngx_modules[i]; i++) {
         if (ngx_modules[i]->type != NGX_HTTP_MODULE_TYPE) {
@@ -116,7 +123,7 @@
         }
     }
 
-    cf->ctx = ctx;
+    cf->ctx = &ctx;
     cf->type = NGX_HTTP_MODULE_TYPE;
     return ngx_conf_parse(cf, NULL);
 }
diff --git a/src/http/ngx_http_core.c b/src/http/ngx_http_core.c
index 848dd8e..30d8329 100644
--- a/src/http/ngx_http_core.c
+++ b/src/http/ngx_http_core.c
@@ -1,7 +1,9 @@
 
 #include <ngx_config.h>
+
 #include <ngx_core.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
+
 #include <ngx_http.h>
 #include <ngx_http_core.h>
 #include <ngx_http_config.h>
diff --git a/src/http/ngx_http_header_filter.c b/src/http/ngx_http_header_filter.c
index aab4e52..3e85677 100644
--- a/src/http/ngx_http_header_filter.c
+++ b/src/http/ngx_http_header_filter.c
@@ -2,11 +2,13 @@
 #include <nginx.h>
 
 #include <ngx_config.h>
+
 #include <ngx_core.h>
 #include <ngx_string.h>
 #include <ngx_table.h>
 #include <ngx_hunk.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
+
 #include <ngx_http.h>
 #include <ngx_http_write_filter.h>
 
diff --git a/src/http/ngx_http_output_filter.c b/src/http/ngx_http_output_filter.c
index f195845..345a4f1 100644
--- a/src/http/ngx_http_output_filter.c
+++ b/src/http/ngx_http_output_filter.c
@@ -1,10 +1,12 @@
 
 #include <ngx_config.h>
+
 #include <ngx_core.h>
 #include <ngx_files.h>
 #include <ngx_string.h>
 #include <ngx_hunk.h>
-#include <ngx_config_file.h>
+#include <ngx_conf_file.h>
+
 #include <ngx_http.h>
 #include <ngx_http_config.h>
 #include <ngx_http_output_filter.h>
diff --git a/src/http/ngx_http_output_filter.h b/src/http/ngx_http_output_filter.h
index f409b54..d8df958 100644
--- a/src/http/ngx_http_output_filter.h
+++ b/src/http/ngx_http_output_filter.h
@@ -3,6 +3,7 @@
 
 
 #include <ngx_hunk.h>
+#include <ngx_conf_file.h>
 #include <ngx_http.h>
 
 
diff --git a/src/http/ngx_http_write_filter.c b/src/http/ngx_http_write_filter.c
index c4321c7..45f6887 100644
--- a/src/http/ngx_http_write_filter.c
+++ b/src/http/ngx_http_write_filter.c
@@ -1,8 +1,12 @@
 
 #include <ngx_config.h>
+
 #include <ngx_core.h>
 #include <ngx_hunk.h>
+#include <ngx_conf_file.h>
+
 #include <ngx_event_write.h>
+
 #include <ngx_http.h>
 #include <ngx_http_config.h>
 #include <ngx_http_write_filter.h>
