Index: /luci2/cbi2/widgets/file.c
===================================================================
--- /luci2/cbi2/widgets/file.c	(revision 5699)
+++ /luci2/cbi2/widgets/file.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int file_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 json_object* file_json(struct cbi_ctx *ctx, struct cbi_element *e)
@@ -21,5 +16,4 @@
 struct cbi_widget file = {
 	.caps = CAP_DATA | CAP_PACKAGE,
-	.init = file_init,
 	.json = file_json,
 	WPROPS(file_props),
Index: /luci2/cbi2/widgets/form.c
===================================================================
--- /luci2/cbi2/widgets/form.c	(revision 5708)
+++ /luci2/cbi2/widgets/form.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int form_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 json_object* form_json(struct cbi_ctx *ctx, struct cbi_element *e)
@@ -19,5 +14,4 @@
 struct cbi_widget form = {
 	.caps = CAP_PACKAGE | CAP_SECTION,
-	.init = form_init,
 	.json = form_json,
 	WPROPS(form_props),
Index: /luci2/cbi2/widgets/section.c
===================================================================
--- /luci2/cbi2/widgets/section.c	(revision 5692)
+++ /luci2/cbi2/widgets/section.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int section_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 struct cbi_widget_property section_props[] = {
@@ -15,5 +10,4 @@
 	.caps = CAP_DATA | CAP_PACKAGE | CAP_SECTION,
 	.parent_caps = CAP_PACKAGE,
-	.init = section_init,
 	WPROPS(section_props),
 };
Index: /luci2/cbi2/widgets/foreach.c
===================================================================
--- /luci2/cbi2/widgets/foreach.c	(revision 5706)
+++ /luci2/cbi2/widgets/foreach.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int foreach_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 struct cbi_widget_property foreach_props[] = {
@@ -15,5 +10,4 @@
 	.caps = CAP_DATA | CAP_PACKAGE | CAP_SECTION | CAP_ITERATE,
 	.parent_caps = CAP_SECTION,
-	.init = foreach_init,
 	WPROPS(foreach_props),
 };
Index: /luci2/cbi2/widgets/option.c
===================================================================
--- /luci2/cbi2/widgets/option.c	(revision 5699)
+++ /luci2/cbi2/widgets/option.c	(revision 5709)
@@ -7,13 +7,7 @@
 };
 
-int option_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
-
 struct cbi_widget option = {
 	.caps = CAP_DATA | CAP_OPTION,
 	.parent_caps = CAP_SECTION,
-	.init = option_init,
 	WPROPS(option_props),
 };
Index: /luci2/cbi2/widgets/tsection.c
===================================================================
--- /luci2/cbi2/widgets/tsection.c	(revision 5686)
+++ /luci2/cbi2/widgets/tsection.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int tsection_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 struct cbi_widget_property tsection_props[] = {
@@ -14,5 +9,4 @@
 	.caps = CAP_SECTION | CAP_TEMPLATE,
 	.parent_caps = CAP_PACKAGE,
-	.init = tsection_init,
 	WPROPS(tsection_props),
 };
Index: /luci2/cbi2/widgets/package.c
===================================================================
--- /luci2/cbi2/widgets/package.c	(revision 5705)
+++ /luci2/cbi2/widgets/package.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int package_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 struct cbi_widget_property package_props[] = {
@@ -13,5 +8,4 @@
 struct cbi_widget package = {
 	.caps = CAP_DATA | CAP_PAGE | CAP_PACKAGE,
-	.init = package_init,
 	WPROPS(package_props),
 };
Index: /luci2/cbi2/widgets/page.c
===================================================================
--- /luci2/cbi2/widgets/page.c	(revision 5708)
+++ /luci2/cbi2/widgets/page.c	(revision 5709)
@@ -1,8 +1,3 @@
 #include "../cbi.h"
-
-int page_init(struct cbi_ctx *ctx, struct cbi_element *e)
-{
-	return 0;
-}
 
 json_object* page_json(struct cbi_ctx *ctx, struct cbi_element *e)
@@ -19,5 +14,4 @@
 struct cbi_widget page = {
 	.caps = CAP_PAGE | CAP_PACKAGE,
-	.init = page_init,
 	.json = page_json,
 	WPROPS(page_props),
Index: /luci2/cbi2/cbi.c
===================================================================
--- /luci2/cbi2/cbi.c	(revision 5699)
+++ /luci2/cbi2/cbi.c	(revision 5709)
@@ -170,6 +170,7 @@
 	if(widget_find_prop(e->w, "id"))
 		cbi_gen_default_id(e, count);
-	if(e->w->init(ctx, e))
-		return 1;
+	if(e->w->init)
+		if(e->w->init(ctx, e))
+			return 1;
 	return 0;
 }
