module versioning
diff --git a/extensions/ebt_802_3.c b/extensions/ebt_802_3.c
index 953a115..181c7ae 100644
--- a/extensions/ebt_802_3.c
+++ b/extensions/ebt_802_3.c
@@ -32,6 +32,7 @@
 
 	info->invflags = 0;
 	info->bitmask = 0;
+	match->version = VERSIONIZE(1,0);
 }
 
 static int parse(int c, char **argv, int argc, const struct ebt_u_entry *entry,
diff --git a/extensions/ebt_arp.c b/extensions/ebt_arp.c
index a4a4105..3e86419 100644
--- a/extensions/ebt_arp.c
+++ b/extensions/ebt_arp.c
@@ -69,6 +69,7 @@
 
 	arpinfo->invflags = 0;
 	arpinfo->bitmask = 0;
+	match->version = VERSIONIZE(1,0);
 }
 
 /* defined in ebt_ip.c */
diff --git a/extensions/ebt_ip.c b/extensions/ebt_ip.c
index 1e1504c..618e7ec 100644
--- a/extensions/ebt_ip.c
+++ b/extensions/ebt_ip.c
@@ -230,6 +230,7 @@
 
 	ipinfo->invflags = 0;
 	ipinfo->bitmask = 0;
+	match->version = VERSIONIZE(1,0);
 }
 
 #define OPT_SOURCE 0x01
diff --git a/extensions/ebt_log.c b/extensions/ebt_log.c
index 3c2409f..18ac5dc 100644
--- a/extensions/ebt_log.c
+++ b/extensions/ebt_log.c
@@ -87,6 +87,7 @@
 	loginfo->bitmask = 0;
 	loginfo->prefix[0] = '\0';
 	loginfo->loglevel = LOG_NOTICE;
+	watcher->version = VERSIONIZE(1,0);
 }
 
 #define OPT_PREFIX 0x01
@@ -176,15 +177,15 @@
 
 static struct ebt_u_watcher log_watcher =
 {
-	EBT_LOG_WATCHER,
-	sizeof(struct ebt_log_info),
-	print_help,
-	init,
-	parse,
-	final_check,
-	print,
-	compare,
-	opts
+	.name		= EBT_LOG_WATCHER,
+	.size		= sizeof(struct ebt_log_info),
+	.help		= print_help,
+	.init		= init,
+	.parse		= parse,
+	.final_check	= final_check,
+	.print		= print,
+	.compare	= compare,
+	.extra_ops	= opts,
 };
 
 static void _init(void) __attribute__ ((constructor));
diff --git a/extensions/ebt_mark.c b/extensions/ebt_mark.c
index 8696348..0b6da74 100644
--- a/extensions/ebt_mark.c
+++ b/extensions/ebt_mark.c
@@ -32,6 +32,7 @@
 	markinfo->target = EBT_ACCEPT;
 	markinfo->mark = 0;
 	mark_supplied = 0;
+	target->version = VERSIONIZE(1,0);
 }
 
 #define OPT_MARK_TARGET   0x01
diff --git a/extensions/ebt_mark_m.c b/extensions/ebt_mark_m.c
index 4fdc41d..073dac8 100644
--- a/extensions/ebt_mark_m.c
+++ b/extensions/ebt_mark_m.c
@@ -28,6 +28,7 @@
 	markinfo->mask    = 0;
 	markinfo->invert  = 0;
 	markinfo->bitmask = 0;
+	match->version = VERSIONIZE(1,0);
 }
 
 #define OPT_MARK 0x01
diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
index c627714..7a32def 100644
--- a/extensions/ebt_nat.c
+++ b/extensions/ebt_nat.c
@@ -50,7 +50,7 @@
 
 	to_source_supplied = 0;
 	natinfo->target = EBT_ACCEPT;
-	return;
+	target->version = VERSIONIZE(1,0);
 }
 
 static void init_d(struct ebt_entry_target *target)
diff --git a/extensions/ebt_pkttype.c b/extensions/ebt_pkttype.c
index e129996..e0de38d 100644
--- a/extensions/ebt_pkttype.c
+++ b/extensions/ebt_pkttype.c
@@ -46,6 +46,7 @@
 	struct ebt_pkttype_info *pt = (struct ebt_pkttype_info *)match->data;
 
 	pt->invert = 0;
+	match->version = VERSIONIZE(1,0);
 }
 
 static int parse(int c, char **argv, int argc, const struct ebt_u_entry *entry,
diff --git a/extensions/ebt_redirect.c b/extensions/ebt_redirect.c
index d74d46d..bfa5380 100644
--- a/extensions/ebt_redirect.c
+++ b/extensions/ebt_redirect.c
@@ -25,7 +25,7 @@
 	   (struct ebt_redirect_info *)target->data;
 
 	redirectinfo->target = EBT_ACCEPT;
-	return;
+	target->version = VERSIONIZE(1,0);
 }
 
 #define OPT_REDIRECT_TARGET  0x01
diff --git a/extensions/ebt_vlan.c b/extensions/ebt_vlan.c
index f7bec62..e95a79d 100644
--- a/extensions/ebt_vlan.c
+++ b/extensions/ebt_vlan.c
@@ -76,10 +76,6 @@
 
 struct ethertypeent *ethent;
 
-/*
- * Print out local help by "ebtables -h <match name>" 
- */
-
 static void print_help()
 {
 #define HELP_TITLE "802.1Q VLAN extension"
@@ -97,33 +93,19 @@
 	       OPT_VLAN_FLAGS & OPT_VLAN_ENCAP ? "[!] " : "");
 }
 
-/*
- * Initialization function 
- */
 static void init(struct ebt_entry_match *match)
 {
 	struct ebt_vlan_info *vlaninfo =
 	    (struct ebt_vlan_info *) match->data;
-	/*
-	 * Set initial values 
-	 */
+
 	vlaninfo->id = 1;	/* Default VID for VLAN-tagged 802.1Q frames */
 	vlaninfo->prio = 0;
 	vlaninfo->encap = 0;
 	vlaninfo->invflags = 0;
 	vlaninfo->bitmask = 0;
+	match->version = VERSIONIZE(1,0);
 }
 
-
-/*
- * Parse passed arguments values (ranges, flags, etc...)
- * int c - parameter number from static struct option opts[]
- * int argc - total amout of arguments (std argc value)
- * int argv - arguments (std argv value)
- * const struct ebt_u_entry *entry - default ebtables entry set
- * unsigned int *flags -
- * struct ebt_entry_match **match - 
- */
 static int
 parse(int c,
       char **argv,
@@ -184,9 +166,6 @@
 	return 1;
 }
 
-/*
- * Final check - logical conditions
- */
 static void
 final_check(const struct ebt_u_entry *entry,
 	    const struct ebt_entry_match *match,
@@ -222,9 +201,6 @@
 	}
 }
 
-/*
- * Print line when listing rules by ebtables -L 
- */
 static void
 print(const struct ebt_u_entry *entry, const struct ebt_entry_match *match)
 {