diff --git a/include/types/arg.h b/include/types/arg.h
index 9e42840..b42a0a7 100644
--- a/include/types/arg.h
+++ b/include/types/arg.h
@@ -44,7 +44,7 @@
 	ARGT_TAB,      /* a pointer to a stick table */
 	ARGT_SRV,      /* a pointer to a server */
 	ARGT_USR,      /* a pointer to a user list */
-	ARGT_UNASSIGNED15, /* will probably be used for variables later */
+	ARGT_MAP,      /* a pointer to a map descriptor */
 	ARGT_NBTYPES   /* no more values past 15 */
 };
 
@@ -73,6 +73,7 @@
 	struct proxy *prx; /* used for fe, be, tables */
 	struct server *srv;
 	struct userlist *usr;
+	struct map_descriptor *map;
 };
 
 struct arg {
diff --git a/include/types/map.h b/include/types/map.h
new file mode 100644
index 0000000..6988cbe
--- /dev/null
+++ b/include/types/map.h
@@ -0,0 +1,69 @@
+/*
+ * include/types/map.h
+ * This file provides structures and types for MAPs.
+ *
+ * Copyright (C) 2000-2012 Willy Tarreau - w@1wt.eu
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, version 2.1
+ * exclusively.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef _TYPES_MAP_H
+#define _TYPES_MAP_H
+
+#include <types/acl.h>
+
+/* These structs contains a string representation of the map. These struct is
+ * sorted by file. Permit to hot-add and hot-remove entries.
+ *
+ * "maps" is the list head. This list cotains all the mao file name identifier.
+ */
+struct list maps = LIST_HEAD_INIT(maps); /* list of struct map_reference */
+
+struct map_reference {
+	struct list list;    /* used for listing */
+	char *reference;     /* contain the unique identifier used as map identifier.
+	                        in many cases this identifier is the filename that contain
+	                        the patterns */
+	struct list entries; /* the list of all the entries of the map. This
+	                        is a list of "struct map_entry" */
+	struct list maps;    /* the list of all maps associated with the file
+	                        name identifier. This is a list of struct map_descriptor */
+};
+
+struct map_entry {
+	struct list list; /* used for listing */
+	int line;         /* The original line into the file. It is used for log reference.
+	                     If the line is '> 0', this entry is from the original load,
+	                     If the line is '< 0', this entry is modify by dynamux process (CLI) */
+	char *key;        /* The string containing the key before conversion
+	                     and indexation */
+	char *value;      /* The string containing the value */
+};
+
+struct sample_storage;
+struct map_descriptor {
+	struct list list;              /* used for listing */
+	struct map_reference *ref;     /* the reference used for unindexed entries */
+	struct sample_conv *conv;      /* original convertissor descriptor */
+	int (*parse)(const char *text, /* The function that can parse the output value */
+	             struct sample_storage *smp);
+	struct acl_expr acl;           /* dummy acl expression. just for using the acl
+	                                  match primitive and storage system */
+	char *default_value;           /* a copy of default value. This copy is
+	                                  useful if the type is str */
+	struct sample_storage *def;    /* contain the default value */
+};
+
+#endif /* _TYPES_MAP_H */
