[gnome-control-center] network: Store widgets inside objects



commit 8b6e3fb7365072da84cf45e97cd8f91ea64b75ce
Author: Robert Ancell <robert ancell canonical com>
Date:   Tue Oct 15 12:25:48 2019 +1300

    network: Store widgets inside objects
    
    This is a step towards replacing GtkBuilder with GtkTemplate

 .../connection-editor/ce-page-8021x-security.c     |  23 +--
 .../connection-editor/ce-page-8021x-security.h     |   5 +-
 panels/network/connection-editor/ce-page-details.c | 105 +++++-----
 panels/network/connection-editor/ce-page-details.h |  23 +++
 panels/network/connection-editor/ce-page-ip4.c     | 135 ++++++-------
 panels/network/connection-editor/ce-page-ip4.h     |  24 ++-
 panels/network/connection-editor/ce-page-ip6.c     | 150 ++++++--------
 panels/network/connection-editor/ce-page-ip6.h     |  21 +-
 .../network/connection-editor/ce-page-security.c   |  32 ++-
 .../network/connection-editor/ce-page-security.h   |   4 +-
 panels/network/connection-editor/ce-page-vpn.c     |  19 +-
 panels/network/connection-editor/ce-page-vpn.h     |   7 +-
 panels/network/connection-editor/ce-page-wifi.c    |  59 +++---
 panels/network/connection-editor/ce-page-wifi.h    |   5 +
 panels/network/net-device-ethernet.c               |  91 +++++----
 panels/network/net-device-mobile.c                 | 146 +++++++-------
 panels/network/net-device-simple.c                 |  59 +++---
 panels/network/net-device-wifi.c                   | 147 +++++++-------
 panels/network/net-proxy.c                         | 182 ++++++++---------
 panels/network/net-vpn.c                           |  50 +++--
 panels/network/wireless-security/eap-method-fast.c | 199 ++++++++-----------
 panels/network/wireless-security/eap-method-leap.c |  85 ++++----
 panels/network/wireless-security/eap-method-peap.c | 191 ++++++++----------
 .../network/wireless-security/eap-method-simple.c  |  84 ++++----
 panels/network/wireless-security/eap-method-tls.c  | 219 +++++++++------------
 panels/network/wireless-security/eap-method-ttls.c | 185 +++++++----------
 panels/network/wireless-security/ws-dynamic-wep.c  |  33 +++-
 panels/network/wireless-security/ws-leap.c         |  90 ++++-----
 panels/network/wireless-security/ws-wep-key.c      | 146 ++++++--------
 panels/network/wireless-security/ws-wpa-eap.c      |  33 +++-
 panels/network/wireless-security/ws-wpa-psk.c      |  86 ++++----
 31 files changed, 1205 insertions(+), 1433 deletions(-)
---
diff --git a/panels/network/connection-editor/ce-page-8021x-security.c 
b/panels/network/connection-editor/ce-page-8021x-security.c
index 33b2379e6..fc9e6c7a0 100644
--- a/panels/network/connection-editor/ce-page-8021x-security.c
+++ b/panels/network/connection-editor/ce-page-8021x-security.c
@@ -39,7 +39,7 @@ G_DEFINE_TYPE (CEPage8021xSecurity, ce_page_8021x_security, CE_TYPE_PAGE)
 static void
 enable_toggled (CEPage8021xSecurity *page)
 {
-       gtk_widget_set_sensitive (page->security_widget, gtk_switch_get_active (page->enabled));
+       gtk_widget_set_sensitive (page->security_widget, gtk_switch_get_active (page->enable_8021x_switch));
        ce_page_changed (CE_PAGE (page));
 }
 
@@ -53,15 +53,10 @@ static void
 finish_setup (CEPage8021xSecurity *page, gpointer unused, GError *error, gpointer user_data)
 {
        GtkWidget *parent;
-        GtkWidget *vbox;
-        GtkWidget *heading;
 
        if (error)
                return;
 
-        vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "box"));
-        heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label"));
-
         page->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
 
        page->security = (WirelessSecurity *) ws_wpa_eap_new (CE_PAGE (page)->connection, TRUE, FALSE);
@@ -76,14 +71,14 @@ finish_setup (CEPage8021xSecurity *page, gpointer unused, GError *error, gpointe
        if (parent)
                gtk_container_remove (GTK_CONTAINER (parent), page->security_widget);
 
-       gtk_switch_set_active (page->enabled, page->initial_have_8021x);
-       g_signal_connect_swapped (page->enabled, "notify::active", G_CALLBACK (enable_toggled), page);
+       gtk_switch_set_active (page->enable_8021x_switch, page->initial_have_8021x);
+       g_signal_connect_swapped (page->enable_8021x_switch, "notify::active", G_CALLBACK (enable_toggled), 
page);
        gtk_widget_set_sensitive (page->security_widget, page->initial_have_8021x);
 
-        gtk_size_group_add_widget (page->group, heading);
+        gtk_size_group_add_widget (page->group, GTK_WIDGET (page->security_label));
         wireless_security_add_to_size_group (page->security, page->group);
 
-       gtk_container_add (GTK_CONTAINER (vbox), page->security_widget);
+       gtk_container_add (GTK_CONTAINER (page->box), page->security_widget);
 
 }
 
@@ -99,11 +94,13 @@ ce_page_8021x_security_new (NMConnection     *connection,
                                                    
"/org/gnome/control-center/network/8021x-security-page.ui",
                                                    _("Security")));
 
+        page->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "box"));
+       page->enable_8021x_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"enable_8021x_switch"));
+        page->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_label"));
+
        if (nm_connection_get_setting_802_1x (connection))
                page->initial_have_8021x = TRUE;
 
-       page->enabled = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "enable_8021x_switch"));
-
        g_signal_connect (page, "initialized", G_CALLBACK (finish_setup), NULL);
 
        if (page->initial_have_8021x)
@@ -118,7 +115,7 @@ validate (CEPage *cepage, NMConnection *connection, GError **error)
        CEPage8021xSecurity *page = CE_PAGE_8021X_SECURITY (cepage);
        gboolean valid = TRUE;
 
-       if (gtk_switch_get_active (page->enabled)) {
+       if (gtk_switch_get_active (page->enable_8021x_switch)) {
                NMSetting *s_8021x;
 
                /* FIXME: get failed property and error out of wireless security objects */
diff --git a/panels/network/connection-editor/ce-page-8021x-security.h 
b/panels/network/connection-editor/ce-page-8021x-security.h
index 3bbac2a05..e3fbef0a1 100644
--- a/panels/network/connection-editor/ce-page-8021x-security.h
+++ b/panels/network/connection-editor/ce-page-8021x-security.h
@@ -44,7 +44,10 @@ typedef struct CEPage8021xSecurityClass CEPage8021xSecurityClass;
 struct CEPage8021xSecurity {
        CEPage parent;
 
-        GtkSwitch *enabled;
+        GtkBox    *box;
+        GtkSwitch *enable_8021x_switch;
+        GtkLabel  *security_label;
+
         GtkWidget *security_widget;
         WirelessSecurity *security;
         GtkSizeGroup *group;
diff --git a/panels/network/connection-editor/ce-page-details.c 
b/panels/network/connection-editor/ce-page-details.c
index dc30807b0..eabec00a6 100644
--- a/panels/network/connection-editor/ce-page-details.c
+++ b/panels/network/connection-editor/ce-page-details.c
@@ -86,7 +86,6 @@ update_last_used (CEPageDetails *page, NMConnection *connection)
         GTimeSpan diff;
         guint64 timestamp;
         NMSettingConnection *s_con;
-        GtkWidget *heading, *widget;
 
         s_con = nm_connection_get_setting_connection (connection);
         if (s_con == NULL)
@@ -110,9 +109,7 @@ update_last_used (CEPageDetails *page, NMConnection *connection)
         else
                 last_used = g_strdup_printf (ngettext ("%i day ago", "%i days ago", days), days);
 out:
-        heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), last_used);
+        panel_set_device_widget_details (page->last_used_heading_label, page->last_used_label, last_used);
 }
 
 static void
@@ -122,7 +119,7 @@ all_user_changed (CEPageDetails *page)
         NMSettingConnection *sc;
 
         sc = nm_connection_get_setting_connection (CE_PAGE (page)->connection);
-        all_users = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON ((gtk_builder_get_object (CE_PAGE 
(page)->builder, "all_user_check"))));
+        all_users = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->all_user_check));
 
         g_object_set (sc, "permissions", NULL, NULL);
         if (!all_users)
@@ -137,7 +134,7 @@ restrict_data_changed (CEPageDetails *page)
 
         s_con = nm_connection_get_setting_connection (CE_PAGE (page)->connection);
 
-        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE 
(page)->builder, "restrict_data_check"))))
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->restrict_data_check)))
                 metered = NM_METERED_YES;
         else
                 metered = NM_METERED_NO;
@@ -150,7 +147,6 @@ update_restrict_data (CEPageDetails *page)
 {
         NMSettingConnection *s_con;
         NMMetered metered;
-        GtkWidget *widget;
         const gchar *type;
 
         s_con = nm_connection_get_setting_connection (CE_PAGE (page)->connection);
@@ -166,20 +162,18 @@ update_restrict_data (CEPageDetails *page)
 
         metered = nm_setting_connection_get_metered (s_con);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "restrict_data_check"));
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->restrict_data_check),
                                       metered == NM_METERED_YES || metered == NM_METERED_GUESS_YES);
-        gtk_widget_show (widget);
+        gtk_widget_show (GTK_WIDGET (page->restrict_data_check));
 
-        g_signal_connect_swapped (widget, "notify::active", G_CALLBACK (restrict_data_changed), page);
-        g_signal_connect_swapped (widget, "notify::active", G_CALLBACK (ce_page_changed), page);
+        g_signal_connect_swapped (page->restrict_data_check, "notify::active", G_CALLBACK 
(restrict_data_changed), page);
+        g_signal_connect_swapped (page->restrict_data_check, "notify::active", G_CALLBACK (ce_page_changed), 
page);
 }
 
 static void
 connect_details_page (CEPageDetails *page)
 {
         NMSettingConnection *sc;
-        GtkWidget *heading, *widget;
         guint speed;
         guint strength;
         NMDeviceState state;
@@ -224,24 +218,18 @@ connect_details_page (CEPageDetails *page)
         }
         if (speed > 0)
                 speed_label = g_strdup_printf (_("%d Mb/s"), speed);
-        heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), speed_label);
+        panel_set_device_widget_details (page->speed_heading_label, page->speed_label, speed_label);
 
         if (NM_IS_DEVICE_WIFI (page->device))
                 hw_address = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (page->device));
         else if (NM_IS_DEVICE_ETHERNET (page->device))
                 hw_address = nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (page->device));
 
-        heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hw_address);
+        panel_set_device_widget_details (page->mac_heading_label, page->mac_label, hw_address);
 
         if (device_is_active && active_ap)
                 security_string = get_ap_security_string (active_ap);
-        heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "security_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), security_string);
+        panel_set_device_widget_details (page->security_heading_label, page->security_label, 
security_string);
 
         strength = 0;
         if (page->ap != NULL)
@@ -259,65 +247,51 @@ connect_details_page (CEPageDetails *page)
                 strength_label = C_("Signal strength", "Good");
         else
                 strength_label = C_("Signal strength", "Excellent");
-        heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "strength_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "strength_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), strength_label);
+        panel_set_device_widget_details (page->strength_heading_label, page->strength_label, strength_label);
 
         /* set IP entries */
-        panel_set_device_widgets (GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"ipv4_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv4_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"ipv6_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv6_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"dns_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"route_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"route_label")),
+        panel_set_device_widgets (page->ipv4_heading_label, page->ipv4_label,
+                                  page->ipv6_heading_label, page->ipv6_label,
+                                  page->dns_heading_label, page->dns_label,
+                                  page->route_heading_label, page->route_label,
                                   device_is_active ? page->device : NULL);
 
         if (!device_is_active && CE_PAGE (page)->connection)
                 update_last_used (page, CE_PAGE (page)->connection);
-        else {
-                heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, 
"last_used_heading_label"));
-                widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "last_used_label"));
-                panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
-        }
+        else
+                panel_set_device_widget_details (page->last_used_heading_label, page->last_used_label, NULL);
 
         /* Auto connect check */
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
-                                                     "auto_connect_check"));
         if (g_str_equal (type, NM_SETTING_VPN_SETTING_NAME)) {
-                gtk_widget_hide (widget);
+                gtk_widget_hide (GTK_WIDGET (page->auto_connect_check));
         } else {
                 g_object_bind_property (sc, "autoconnect",
-                                        widget, "active",
+                                        page->auto_connect_check, "active",
                                         G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
-                g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ce_page_changed), page);
+                g_signal_connect_swapped (page->auto_connect_check, "toggled", G_CALLBACK (ce_page_changed), 
page);
         }
 
         /* All users check */
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
-                                                     "all_user_check"));
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->all_user_check),
                                       nm_setting_connection_get_num_permissions (sc) == 0);
-        g_signal_connect_swapped (widget, "toggled",
+        g_signal_connect_swapped (page->all_user_check, "toggled",
                                   G_CALLBACK (all_user_changed), page);
-        g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ce_page_changed), page);
+        g_signal_connect_swapped (page->all_user_check, "toggled", G_CALLBACK (ce_page_changed), page);
 
         /* Restrict Data check */
         update_restrict_data (page);
 
         /* Forget button */
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "forget_button"));
-        g_signal_connect_swapped (widget, "clicked", G_CALLBACK (forget_cb), page);
+        g_signal_connect_swapped (page->forget_button, "clicked", G_CALLBACK (forget_cb), page);
 
         if (g_str_equal (type, NM_SETTING_WIRELESS_SETTING_NAME))
-                gtk_button_set_label (GTK_BUTTON (widget), _("Forget Connection"));
+                gtk_button_set_label (page->forget_button, _("Forget Connection"));
         else if (g_str_equal (type, NM_SETTING_WIRED_SETTING_NAME))
-                gtk_button_set_label (GTK_BUTTON (widget), _("Remove Connection Profile"));
+                gtk_button_set_label (page->forget_button, _("Remove Connection Profile"));
         else if (g_str_equal (type, NM_SETTING_VPN_SETTING_NAME))
-                gtk_button_set_label (GTK_BUTTON (widget), _("Remove VPN"));
+                gtk_button_set_label (page->forget_button, _("Remove VPN"));
         else
-                gtk_widget_hide (widget);
+                gtk_widget_hide (GTK_WIDGET (page->forget_button));
 }
 
 static void
@@ -345,6 +319,29 @@ ce_page_details_new (NMConnection        *connection,
                                              "/org/gnome/control-center/network/details-page.ui",
                                              _("Details")));
 
+        page->all_user_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"all_user_check"));
+        page->auto_connect_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_connect_check"));
+        page->dns_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"dns_heading_label"));
+        page->dns_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_label"));
+        page->forget_button = GTK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "forget_button"));
+        page->ipv4_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"ipv4_heading_label"));
+        page->ipv4_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv4_label"));
+        page->ipv6_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"ipv6_heading_label"));
+        page->ipv6_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "ipv6_label"));
+        page->last_used_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"last_used_heading_label"));
+        page->last_used_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"last_used_label"));
+        page->mac_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"mac_heading_label"));
+        page->mac_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_label"));
+        page->restrict_data_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"restrict_data_check"));
+        page->route_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"route_heading_label"));
+        page->route_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "route_label"));
+        page->security_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_heading_label"));
+        page->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_label"));
+        page->speed_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"speed_heading_label"));
+        page->speed_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "speed_label"));
+        page->strength_heading_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"strength_heading_label"));
+        page->strength_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"strength_label"));
+
         page->editor = editor;
         page->device = device;
         page->ap = ap;
diff --git a/panels/network/connection-editor/ce-page-details.h 
b/panels/network/connection-editor/ce-page-details.h
index fb85a2585..d337c8b88 100644
--- a/panels/network/connection-editor/ce-page-details.h
+++ b/panels/network/connection-editor/ce-page-details.h
@@ -44,6 +44,29 @@ struct _CEPageDetails
 {
         CEPage parent;
 
+        GtkCheckButton *all_user_check;
+        GtkCheckButton *auto_connect_check;
+        GtkLabel *dns_heading_label;
+        GtkLabel *dns_label;
+        GtkButton *forget_button;
+        GtkLabel *ipv4_heading_label;
+        GtkLabel *ipv4_label;
+        GtkLabel *ipv6_heading_label;
+        GtkLabel *ipv6_label;
+        GtkLabel *last_used_heading_label;
+        GtkLabel *last_used_label;
+        GtkLabel *mac_heading_label;
+        GtkLabel *mac_label;
+        GtkCheckButton *restrict_data_check;
+        GtkLabel *route_heading_label;
+        GtkLabel *route_label;
+        GtkLabel *security_heading_label;
+        GtkLabel *security_label;
+        GtkLabel *speed_heading_label;
+        GtkLabel *speed_label;
+        GtkLabel *strength_heading_label;
+        GtkLabel *strength_label;
+
         NMDevice *device;
         NMAccessPoint *ap;
         NetConnectionEditor *editor;
diff --git a/panels/network/connection-editor/ce-page-ip4.c b/panels/network/connection-editor/ce-page-ip4.c
index 76726adb4..add4e84e7 100644
--- a/panels/network/connection-editor/ce-page-ip4.c
+++ b/panels/network/connection-editor/ce-page-ip4.c
@@ -32,8 +32,6 @@
 #include "ce-page-ip4.h"
 #include "ui-helpers.h"
 
-#define RADIO_IS_ACTIVE(x) (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object(CE_PAGE 
(page)->builder, x))))
-
 static void ensure_empty_address_row (CEPageIP4 *page);
 static void ensure_empty_routes_row (CEPageIP4 *page);
 
@@ -58,23 +56,21 @@ method_changed (CEPageIP4 *page)
         gboolean addr_enabled;
         gboolean dns_enabled;
         gboolean routes_enabled;
-        GtkWidget *widget;
 
-        if (RADIO_IS_ACTIVE ("disabled_radio")) {
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) {
                 addr_enabled = FALSE;
                 dns_enabled = FALSE;
                 routes_enabled = FALSE;
         } else {
-                addr_enabled = RADIO_IS_ACTIVE ("manual_radio");
-                dns_enabled = !RADIO_IS_ACTIVE ("local_radio");
-                routes_enabled = !RADIO_IS_ACTIVE ("local_radio");
+                addr_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio));
+                dns_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio));
+                routes_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio));
         }
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box"));
-        gtk_widget_set_visible (widget, addr_enabled);
-        gtk_widget_set_sensitive (page->dns_entry, dns_enabled);
-        gtk_widget_set_sensitive (page->routes_list, routes_enabled);
-        gtk_widget_set_sensitive (page->never_default, routes_enabled);
+        gtk_widget_set_visible (GTK_WIDGET (page->address_box), addr_enabled);
+        gtk_widget_set_sensitive (GTK_WIDGET (page->dns_entry), dns_enabled);
+        gtk_widget_set_sensitive (GTK_WIDGET (page->routes_list), routes_enabled);
+        gtk_widget_set_sensitive (GTK_WIDGET (page->never_default_check), routes_enabled);
 
         ce_page_changed (CE_PAGE (page));
 }
@@ -196,7 +192,6 @@ add_address_row (CEPageIP4   *page,
                  const gchar *network,
                  const gchar *gateway)
 {
-        GtkSizeGroup *group;
         GtkWidget *row;
         GtkWidget *row_box;
         GtkWidget *widget;
@@ -245,8 +240,7 @@ add_address_row (CEPageIP4   *page,
         gtk_container_add (GTK_CONTAINER (row_box), delete_button);
         g_object_set_data (G_OBJECT (row), "delete-button", delete_button);
 
-        group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "address_sizegroup"));
-        gtk_size_group_add_widget (group, delete_button);
+        gtk_size_group_add_widget (page->address_sizegroup, delete_button);
 
         gtk_container_add (GTK_CONTAINER (row), row_box);
         gtk_widget_show_all (row);
@@ -277,17 +271,14 @@ ensure_empty_address_row (CEPageIP4 *page)
 static void
 add_address_box (CEPageIP4 *page)
 {
-        GtkWidget *widget;
         GtkWidget *list;
         gint i;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box"));
-
         page->address_list = list = gtk_list_box_new ();
         gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE);
         gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL);
         gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL);
-        gtk_container_add (GTK_CONTAINER (widget), list);
+        gtk_container_add (GTK_CONTAINER (page->address_box), list);
 
         for (i = 0; i < nm_setting_ip_config_get_num_addresses (page->setting); i++) {
                 NMIPAddress *addr;
@@ -309,22 +300,18 @@ add_address_box (CEPageIP4 *page)
         if (nm_setting_ip_config_get_num_addresses (page->setting) == 0)
                 ensure_empty_address_row (page);
 
-        gtk_widget_show_all (widget);
+        gtk_widget_show_all (GTK_WIDGET (page->address_box));
 }
 
 static void
 add_dns_section (CEPageIP4 *page)
 {
-        GtkEntry *entry;
         GString *string;
         gint i;
 
-        page->auto_dns = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch"));
-        gtk_switch_set_active (page->auto_dns, !nm_setting_ip_config_get_ignore_auto_dns (page->setting));
-        g_signal_connect_swapped (page->auto_dns, "notify::active", G_CALLBACK (ce_page_changed), page);
+        gtk_switch_set_active (page->auto_dns_switch, !nm_setting_ip_config_get_ignore_auto_dns 
(page->setting));
+        g_signal_connect_swapped (page->auto_dns_switch, "notify::active", G_CALLBACK (ce_page_changed), 
page);
 
-        page->dns_entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry"));
-        entry = GTK_ENTRY (page->dns_entry);
         string = g_string_new ("");
 
         for (i = 0; i < nm_setting_ip_config_get_num_dns (page->setting); i++) {
@@ -338,9 +325,9 @@ add_dns_section (CEPageIP4 *page)
                 g_string_append (string, address);
         }
 
-        gtk_entry_set_text (entry, string->str);
+        gtk_entry_set_text (page->dns_entry, string->str);
 
-        g_signal_connect_swapped (entry, "notify::text", G_CALLBACK (ce_page_changed), page);
+        g_signal_connect_swapped (page->dns_entry, "notify::text", G_CALLBACK (ce_page_changed), page);
 
         g_string_free (string, TRUE);
 }
@@ -352,7 +339,6 @@ add_route_row (CEPageIP4   *page,
                const gchar *gateway,
                gint         metric)
 {
-        GtkSizeGroup *group;
         GtkWidget *row;
         GtkWidget *row_box;
         GtkWidget *widget;
@@ -403,8 +389,7 @@ add_route_row (CEPageIP4   *page,
         gtk_widget_set_hexpand (widget, TRUE);
         gtk_container_add (GTK_CONTAINER (row_box), widget);
 
-        group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_metric_sizegroup"));
-        gtk_size_group_add_widget (group, widget);
+        gtk_size_group_add_widget (page->routes_metric_sizegroup, widget);
 
         delete_button = gtk_button_new ();
         gtk_style_context_add_class (gtk_widget_get_style_context (delete_button), "image-button");
@@ -417,8 +402,7 @@ add_route_row (CEPageIP4   *page,
         gtk_container_add (GTK_CONTAINER (row_box), delete_button);
         g_object_set_data (G_OBJECT (row), "delete-button", delete_button);
 
-        group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_sizegroup"));
-        gtk_size_group_add_widget (group, delete_button);
+        gtk_size_group_add_widget (page->routes_sizegroup, delete_button);
 
         gtk_container_add (GTK_CONTAINER (row), row_box);
         gtk_widget_show_all (row);
@@ -448,20 +432,16 @@ ensure_empty_routes_row (CEPageIP4 *page)
 static void
 add_routes_box (CEPageIP4 *page)
 {
-        GtkWidget *widget;
         GtkWidget *list;
         gint i;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box"));
-
         page->routes_list = list = gtk_list_box_new ();
         gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE);
         gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL);
         gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL);
-        gtk_container_add (GTK_CONTAINER (widget), list);
-        page->auto_routes = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_routes_switch"));
-        gtk_switch_set_active (page->auto_routes, !nm_setting_ip_config_get_ignore_auto_routes 
(page->setting));
-        g_signal_connect_swapped (page->auto_routes, "notify::active", G_CALLBACK (ce_page_changed), page);
+        gtk_container_add (GTK_CONTAINER (page->routes_box), list);
+        gtk_switch_set_active (page->auto_routes_switch, !nm_setting_ip_config_get_ignore_auto_routes 
(page->setting));
+        g_signal_connect_swapped (page->auto_routes_switch, "notify::active", G_CALLBACK (ce_page_changed), 
page);
 
 
         for (i = 0; i < nm_setting_ip_config_get_num_routes (page->setting); i++) {
@@ -485,7 +465,7 @@ add_routes_box (CEPageIP4 *page)
         if (nm_setting_ip_config_get_num_routes (page->setting) == 0)
                 ensure_empty_routes_row (page);
 
-        gtk_widget_show_all (widget);
+        gtk_widget_show_all (GTK_WIDGET (page->routes_box));
 }
 
 enum
@@ -500,25 +480,35 @@ enum
 static void
 connect_ip4_page (CEPageIP4 *page)
 {
-        GtkToggleButton *radios[N_RADIO];
-        GtkWidget *content;
         const gchar *str_method;
         gboolean disabled;
-        guint method, i;
+        guint method;
+
+        page->address_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box"));
+        page->address_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, 
"address_sizegroup"));
+        page->auto_dns_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_dns_switch"));
+        page->auto_routes_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_routes_switch"));
+        page->automatic_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"automatic_radio"));
+        page->content_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box"));
+        page->disabled_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"disabled_radio"));
+        page->dns_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry"));
+        page->local_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"local_radio"));
+        page->manual_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"manual_radio"));
+        page->never_default_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"never_default_check"));
+        page->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box"));
+        page->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, 
"routes_metric_sizegroup"));
+        page->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, 
"routes_sizegroup"));
 
         add_address_box (page);
         add_dns_section (page);
         add_routes_box (page);
 
-        page->disabled = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"disabled_radio"));
-
         str_method = nm_setting_ip_config_get_method (page->setting);
         disabled = g_strcmp0 (str_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0;
-        gtk_toggle_button_set_active (page->disabled, disabled);
-        g_signal_connect_swapped (page->disabled, "notify::active", G_CALLBACK (ce_page_changed), page);
-        content = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box"));
-        g_object_bind_property (page->disabled, "active",
-                                content, "sensitive",
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), disabled);
+        g_signal_connect_swapped (page->disabled_radio, "notify::active", G_CALLBACK (ce_page_changed), 
page);
+        g_object_bind_property (page->disabled_radio, "active",
+                                page->content_box, "sensitive",
                                 G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN);
 
         method = IP4_METHOD_AUTO;
@@ -532,32 +522,27 @@ connect_ip4_page (CEPageIP4 *page)
                 method = IP4_METHOD_DISABLED;
         }
 
-        page->never_default = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, 
"never_default_check"));
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default),
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default_check),
                                       nm_setting_ip_config_get_never_default (page->setting));
-        g_signal_connect_swapped (page->never_default, "toggled", G_CALLBACK (ce_page_changed), page);
-
-        /* Connect radio buttons */
-        radios[RADIO_AUTOMATIC] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"automatic_radio"));
-        radios[RADIO_LOCAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"local_radio"));
-        radios[RADIO_MANUAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"manual_radio"));
-        radios[RADIO_DISABLED] = page->disabled;
+        g_signal_connect_swapped (page->never_default_check, "toggled", G_CALLBACK (ce_page_changed), page);
 
-        for (i = RADIO_AUTOMATIC; i < RADIO_DISABLED; i++)
-                g_signal_connect_swapped (radios[i], "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->automatic_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->local_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->manual_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->disabled_radio, "toggled", G_CALLBACK (method_changed), page);
 
         switch (method) {
         case IP4_METHOD_AUTO:
-                gtk_toggle_button_set_active (radios[RADIO_AUTOMATIC], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->automatic_radio), TRUE);
                 break;
         case IP4_METHOD_LINK_LOCAL:
-                gtk_toggle_button_set_active (radios[RADIO_LOCAL], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->local_radio), TRUE);
                 break;
         case IP4_METHOD_MANUAL:
-                gtk_toggle_button_set_active (radios[RADIO_MANUAL], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->manual_radio), TRUE);
                 break;
         case IP4_METHOD_DISABLED:
-                gtk_toggle_button_set_active (radios[RADIO_DISABLED], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), TRUE);
                 break;
         default:
                 break;
@@ -609,14 +594,14 @@ ui_to_setting (CEPageIP4 *page)
         gchar *dns_text = NULL;
         guint i;
 
-        if (gtk_toggle_button_get_active (page->disabled)) {
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) {
                 method = NM_SETTING_IP4_CONFIG_METHOD_DISABLED;
         } else {
-                if (RADIO_IS_ACTIVE ("automatic_radio"))
+                if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->automatic_radio)))
                         method = NM_SETTING_IP4_CONFIG_METHOD_AUTO;
-                else if (RADIO_IS_ACTIVE ("local_radio"))
+                else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio)))
                         method = NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL;
-                else if (RADIO_IS_ACTIVE ("manual_radio"))
+                else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio)))
                         method = NM_SETTING_IP4_CONFIG_METHOD_MANUAL;
         }
 
@@ -716,11 +701,11 @@ ui_to_setting (CEPageIP4 *page)
 
                 if (!nm_utils_ipaddr_valid (AF_INET, text)) {
                         g_ptr_array_remove_range (dns_servers, 0, dns_servers->len);
-                        widget_set_error (page->dns_entry);
+                        widget_set_error (GTK_WIDGET (page->dns_entry));
                         ret = FALSE;
                         break;
                 } else {
-                        widget_unset_error (page->dns_entry);
+                        widget_unset_error (GTK_WIDGET (page->dns_entry));
                         g_ptr_array_add (dns_servers, g_strdup (text));
                 }
         }
@@ -820,9 +805,9 @@ ui_to_setting (CEPageIP4 *page)
         if (!ret)
                 goto out;
 
-        ignore_auto_dns = !gtk_switch_get_active (page->auto_dns);
-        ignore_auto_routes = !gtk_switch_get_active (page->auto_routes);
-        never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default));
+        ignore_auto_dns = !gtk_switch_get_active (page->auto_dns_switch);
+        ignore_auto_routes = !gtk_switch_get_active (page->auto_routes_switch);
+        never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default_check));
 
         g_object_set (page->setting,
                       NM_SETTING_IP_CONFIG_METHOD, method,
diff --git a/panels/network/connection-editor/ce-page-ip4.h b/panels/network/connection-editor/ce-page-ip4.h
index 31a8eb601..2ae087fd7 100644
--- a/panels/network/connection-editor/ce-page-ip4.h
+++ b/panels/network/connection-editor/ce-page-ip4.h
@@ -43,15 +43,25 @@ struct _CEPageIP4
 {
         CEPage parent;
 
+        GtkBox         *address_box;
+        GtkSizeGroup   *address_sizegroup;
+        GtkSwitch      *auto_dns_switch;
+        GtkSwitch      *auto_routes_switch;
+        GtkRadioButton *automatic_radio;
+        GtkBox         *content_box;
+        GtkRadioButton *disabled_radio;
+        GtkEntry       *dns_entry;
+        GtkRadioButton *local_radio;
+        GtkRadioButton *manual_radio;
+        GtkCheckButton *never_default_check;
+        GtkBox         *routes_box;
+        GtkSizeGroup   *routes_metric_sizegroup;
+        GtkSizeGroup   *routes_sizegroup;
+
         NMSettingIPConfig *setting;
 
-        GtkToggleButton *disabled;
-        GtkWidget       *address_list;
-        GtkSwitch       *auto_dns;
-        GtkWidget       *dns_entry;
-        GtkSwitch       *auto_routes;
-        GtkWidget       *routes_list;
-        GtkWidget       *never_default;
+        GtkWidget      *address_list;
+        GtkWidget      *routes_list;
 };
 
 struct _CEPageIP4Class
diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c
index ab07166cb..524c1e285 100644
--- a/panels/network/connection-editor/ce-page-ip6.c
+++ b/panels/network/connection-editor/ce-page-ip6.c
@@ -32,8 +32,6 @@
 #include "ce-page-ip6.h"
 #include "ui-helpers.h"
 
-#define RADIO_IS_ACTIVE(x) (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object(CE_PAGE 
(page)->builder, x))))
-
 static void ensure_empty_address_row (CEPageIP6 *page);
 static void ensure_empty_routes_row (CEPageIP6 *page);
 
@@ -59,23 +57,21 @@ method_changed (CEPageIP6 *page)
         gboolean addr_enabled;
         gboolean dns_enabled;
         gboolean routes_enabled;
-        GtkWidget *widget;
 
-        if (RADIO_IS_ACTIVE ("disabled_radio")) {
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) {
                 addr_enabled = FALSE;
                 dns_enabled = FALSE;
                 routes_enabled = FALSE;
         } else {
-                addr_enabled = RADIO_IS_ACTIVE ("manual_radio");
-                dns_enabled = !RADIO_IS_ACTIVE ("local_radio");
-                routes_enabled = !RADIO_IS_ACTIVE ("local_radio");
+                addr_enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio));
+                dns_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio));
+                routes_enabled = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio));
         }
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box"));
-        gtk_widget_set_visible (widget, addr_enabled);
-        gtk_widget_set_sensitive (page->dns_entry, dns_enabled);
-        gtk_widget_set_sensitive (page->routes_list, routes_enabled);
-        gtk_widget_set_sensitive (page->never_default, routes_enabled);
+        gtk_widget_set_visible (GTK_WIDGET (page->address_box), addr_enabled);
+        gtk_widget_set_sensitive (GTK_WIDGET (page->dns_entry), dns_enabled);
+        gtk_widget_set_sensitive (GTK_WIDGET (page->routes_list), routes_enabled);
+        gtk_widget_set_sensitive (GTK_WIDGET (page->never_default_check), routes_enabled);
 
         ce_page_changed (CE_PAGE (page));
 }
@@ -175,7 +171,6 @@ add_address_row (CEPageIP6   *page,
                  const gchar *network,
                  const gchar *gateway)
 {
-        GtkSizeGroup *group;
         GtkWidget *row;
         GtkWidget *row_box;
         GtkWidget *widget;
@@ -224,8 +219,7 @@ add_address_row (CEPageIP6   *page,
         gtk_container_add (GTK_CONTAINER (row_box), delete_button);
         g_object_set_data (G_OBJECT (row), "delete-button", delete_button);
 
-        group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "address_sizegroup"));
-        gtk_size_group_add_widget (group, delete_button);
+        gtk_size_group_add_widget (page->address_sizegroup, delete_button);
 
         gtk_container_add (GTK_CONTAINER (row), row_box);
         gtk_widget_show_all (row);
@@ -255,17 +249,14 @@ ensure_empty_address_row (CEPageIP6 *page)
 static void
 add_address_box (CEPageIP6 *page)
 {
-        GtkWidget *widget;
         GtkWidget *list;
         gint i;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box"));
-
         page->address_list = list = gtk_list_box_new ();
         gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE);
         gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL);
         gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL);
-        gtk_container_add (GTK_CONTAINER (widget), list);
+        gtk_container_add (GTK_CONTAINER (page->address_box), list);
 
         for (i = 0; i < nm_setting_ip_config_get_num_addresses (page->setting); i++) {
                 NMIPAddress *addr;
@@ -279,22 +270,18 @@ add_address_box (CEPageIP6 *page)
         if (nm_setting_ip_config_get_num_addresses (page->setting) == 0)
                 ensure_empty_address_row (page);
 
-        gtk_widget_show_all (widget);
+        gtk_widget_show_all (GTK_WIDGET (page->address_box));
 }
 
 static void
 add_dns_section (CEPageIP6 *page)
 {
-        GtkEntry *entry;
         GString *string;
         gint i;
 
-        page->auto_dns = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, "auto_dns_switch"));
-        gtk_switch_set_active (page->auto_dns, !nm_setting_ip_config_get_ignore_auto_dns (page->setting));
-        g_signal_connect_swapped (page->auto_dns, "notify::active", G_CALLBACK (ce_page_changed), page);
+        gtk_switch_set_active (page->auto_dns_switch, !nm_setting_ip_config_get_ignore_auto_dns 
(page->setting));
+        g_signal_connect_swapped (page->auto_dns_switch, "notify::active", G_CALLBACK (ce_page_changed), 
page);
 
-        page->dns_entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry"));
-        entry = GTK_ENTRY (page->dns_entry);
         string = g_string_new ("");
 
         for (i = 0; i < nm_setting_ip_config_get_num_dns (page->setting); i++) {
@@ -309,7 +296,7 @@ add_dns_section (CEPageIP6 *page)
 
         }
 
-        gtk_entry_set_text (entry, string->str);
+        gtk_entry_set_text (page->dns_entry, string->str);
 
         g_signal_connect_swapped (page->dns_entry, "notify::text", G_CALLBACK (ce_page_changed), page);
 
@@ -323,7 +310,6 @@ add_route_row (CEPageIP6   *page,
                const gchar *gateway,
                const gchar *metric)
 {
-        GtkSizeGroup *group;
         GtkWidget *row;
         GtkWidget *row_box;
         GtkWidget *widget;
@@ -371,8 +357,7 @@ add_route_row (CEPageIP6   *page,
         gtk_widget_set_hexpand (widget, TRUE);
         gtk_container_add (GTK_CONTAINER (row_box), widget);
 
-        group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_metric_sizegroup"));
-        gtk_size_group_add_widget (group, widget);
+        gtk_size_group_add_widget (page->routes_metric_sizegroup, widget);
 
         delete_button = gtk_button_new ();
         gtk_style_context_add_class (gtk_widget_get_style_context (delete_button), "image-button");
@@ -385,8 +370,7 @@ add_route_row (CEPageIP6   *page,
         gtk_container_add (GTK_CONTAINER (row_box), delete_button);
         g_object_set_data (G_OBJECT (row), "delete-button", delete_button);
 
-        group = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_sizegroup"));
-        gtk_size_group_add_widget (group, delete_button);
+        gtk_size_group_add_widget (page->routes_sizegroup, delete_button);
 
         gtk_container_add (GTK_CONTAINER (row), row_box);
         gtk_widget_show_all (row);
@@ -422,20 +406,16 @@ add_empty_route_row (CEPageIP6 *page)
 static void
 add_routes_box (CEPageIP6 *page)
 {
-        GtkWidget *widget;
         GtkWidget *list;
         gint i;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box"));
-
         page->routes_list = list = gtk_list_box_new ();
         gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE);
         gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL);
         gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)sort_first_last, NULL, NULL);
-        gtk_container_add (GTK_CONTAINER (widget), list);
-        page->auto_routes = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_routes_switch"));
-        gtk_switch_set_active (page->auto_routes, !nm_setting_ip_config_get_ignore_auto_routes 
(page->setting));
-        g_signal_connect_swapped (page->auto_routes, "notify::active", G_CALLBACK (ce_page_changed), page);
+        gtk_container_add (GTK_CONTAINER (page->routes_box), list);
+        gtk_switch_set_active (page->auto_routes_switch, !nm_setting_ip_config_get_ignore_auto_routes 
(page->setting));
+        g_signal_connect_swapped (page->auto_routes_switch, "notify::active", G_CALLBACK (ce_page_changed), 
page);
 
         for (i = 0; i < nm_setting_ip_config_get_num_routes (page->setting); i++) {
                 NMIPRoute *route;
@@ -453,41 +433,42 @@ add_routes_box (CEPageIP6 *page)
         if (nm_setting_ip_config_get_num_routes (page->setting) == 0)
                 add_empty_route_row (page);
 
-        gtk_widget_show_all (widget);
+        gtk_widget_show_all (GTK_WIDGET (page->routes_box));
 }
 
-enum
-{
-        RADIO_AUTOMATIC,
-        RADIO_DHCP,
-        RADIO_LOCAL,
-        RADIO_MANUAL,
-        RADIO_DISABLED,
-        N_RADIO
-};
-
 static void
 connect_ip6_page (CEPageIP6 *page)
 {
-        GtkToggleButton *radios[N_RADIO];
-        GtkWidget *content;
         const gchar *str_method;
         gboolean disabled;
-        guint method, i;
+        guint method;
+
+        page->address_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "address_box"));
+        page->address_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, 
"address_sizegroup"));
+        page->auto_dns_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_dns_switch"));
+        page->auto_routes_switch = GTK_SWITCH (gtk_builder_get_object (CE_PAGE (page)->builder, 
"auto_routes_switch"));
+        page->automatic_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"automatic_radio"));
+        page->content_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box"));
+        page->dhcp_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, "dhcp_radio"));
+        page->disabled_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"disabled_radio"));
+        page->dns_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "dns_entry"));
+        page->local_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"local_radio"));
+        page->manual_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"manual_radio"));
+        page->never_default_check = GTK_CHECK_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"never_default_check"));
+        page->routes_box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "routes_box"));
+        page->routes_metric_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, 
"routes_metric_sizegroup"));
+        page->routes_sizegroup = GTK_SIZE_GROUP (gtk_builder_get_object (CE_PAGE (page)->builder, 
"routes_sizegroup"));
 
         add_address_box (page);
         add_dns_section (page);
         add_routes_box (page);
 
-        page->disabled = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"disabled_radio"));
-
         str_method = nm_setting_ip_config_get_method (page->setting);
         disabled = g_strcmp0 (str_method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE) == 0;
-        gtk_toggle_button_set_active (page->disabled, disabled);
-        g_signal_connect_swapped (page->disabled, "notify::active", G_CALLBACK (ce_page_changed), page);
-        content = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "content_box"));
-        g_object_bind_property (page->disabled, "active",
-                                content, "sensitive",
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), disabled);
+        g_signal_connect_swapped (page->disabled_radio, "notify::active", G_CALLBACK (ce_page_changed), 
page);
+        g_object_bind_property (page->disabled_radio, "active",
+                                page->content_box, "sensitive",
                                 G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN);
 
         method = IP6_METHOD_AUTO;
@@ -503,37 +484,32 @@ connect_ip6_page (CEPageIP6 *page)
                 method = IP6_METHOD_IGNORE;
         }
 
-        page->never_default = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, 
"never_default_check"));
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default),
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->never_default_check),
                                       nm_setting_ip_config_get_never_default (page->setting));
-        g_signal_connect_swapped (page->never_default, "toggled", G_CALLBACK (ce_page_changed), page);
-
+        g_signal_connect_swapped (page->never_default_check, "toggled", G_CALLBACK (ce_page_changed), page);
 
-        /* Connect radio buttons */
-        radios[RADIO_AUTOMATIC] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"automatic_radio"));
-        radios[RADIO_DHCP] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"dhcp_radio"));
-        radios[RADIO_LOCAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"local_radio"));
-        radios[RADIO_MANUAL] = GTK_TOGGLE_BUTTON (gtk_builder_get_object (CE_PAGE (page)->builder, 
"manual_radio"));
-        radios[RADIO_DISABLED] = page->disabled;
 
-        for (i = RADIO_AUTOMATIC; i < RADIO_DISABLED; i++)
-                g_signal_connect_swapped (radios[i], "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->automatic_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->dhcp_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->local_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->manual_radio, "toggled", G_CALLBACK (method_changed), page);
+        g_signal_connect_swapped (page->disabled_radio, "toggled", G_CALLBACK (method_changed), page);
 
         switch (method) {
         case IP6_METHOD_AUTO:
-                gtk_toggle_button_set_active (radios[RADIO_AUTOMATIC], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->automatic_radio), TRUE);
                 break;
         case IP6_METHOD_DHCP:
-                gtk_toggle_button_set_active (radios[RADIO_DHCP], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->dhcp_radio), TRUE);
                 break;
         case IP6_METHOD_LINK_LOCAL:
-                gtk_toggle_button_set_active (radios[RADIO_LOCAL], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->local_radio), TRUE);
                 break;
         case IP6_METHOD_MANUAL:
-                gtk_toggle_button_set_active (radios[RADIO_MANUAL], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->manual_radio), TRUE);
                 break;
         case IP6_METHOD_IGNORE:
-                gtk_toggle_button_set_active (radios[RADIO_DISABLED], TRUE);
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (page->disabled_radio), TRUE);
                 break;
         default:
                 break;
@@ -555,16 +531,16 @@ ui_to_setting (CEPageIP6 *page)
         gchar *dns_text = NULL;
         guint i;
 
-        if (gtk_toggle_button_get_active (page->disabled)) {
+        if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->disabled_radio))) {
                 method = NM_SETTING_IP6_CONFIG_METHOD_IGNORE;
         } else {
-                if (RADIO_IS_ACTIVE ("manual_radio")) {
+                if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->manual_radio))) {
                         method = NM_SETTING_IP6_CONFIG_METHOD_MANUAL;
-                } else if (RADIO_IS_ACTIVE ("local_radio")) {
+                } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->local_radio))) {
                         method = NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL;
-                } else if (RADIO_IS_ACTIVE ("dhcp_radio")) {
+                } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->dhcp_radio))) {
                         method = NM_SETTING_IP6_CONFIG_METHOD_DHCP;
-                } else if (RADIO_IS_ACTIVE ("automatic_radio")) {
+                } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->automatic_radio))) {
                         method = NM_SETTING_IP6_CONFIG_METHOD_AUTO;
                 }
         }
@@ -666,11 +642,11 @@ ui_to_setting (CEPageIP6 *page)
 
                 if (inet_pton (AF_INET6, text, &tmp_addr) <= 0) {
                         g_clear_pointer (&dns_addresses, g_strfreev);
-                        widget_set_error (page->dns_entry);
+                        widget_set_error (GTK_WIDGET (page->dns_entry));
                         ret = FALSE;
                         break;
                 } else {
-                        widget_unset_error (page->dns_entry);
+                        widget_unset_error (GTK_WIDGET (page->dns_entry));
                         nm_setting_ip_config_add_dns (page->setting, text);
                 }
         }
@@ -763,9 +739,9 @@ ui_to_setting (CEPageIP6 *page)
         if (!ret)
                 goto out;
 
-        ignore_auto_dns = !gtk_switch_get_active (page->auto_dns);
-        ignore_auto_routes = !gtk_switch_get_active (page->auto_routes);
-        never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default));
+        ignore_auto_dns = !gtk_switch_get_active (page->auto_dns_switch);
+        ignore_auto_routes = !gtk_switch_get_active (page->auto_routes_switch);
+        never_default = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (page->never_default_check));
 
         g_object_set (page->setting,
                       NM_SETTING_IP_CONFIG_METHOD, method,
diff --git a/panels/network/connection-editor/ce-page-ip6.h b/panels/network/connection-editor/ce-page-ip6.h
index 57933b7e5..e6c1c2ac9 100644
--- a/panels/network/connection-editor/ce-page-ip6.h
+++ b/panels/network/connection-editor/ce-page-ip6.h
@@ -43,15 +43,26 @@ struct _CEPageIP6
 {
         CEPage parent;
 
+        GtkBox         *address_box;
+        GtkSizeGroup   *address_sizegroup;
+        GtkSwitch      *auto_dns_switch;
+        GtkSwitch      *auto_routes_switch;
+        GtkRadioButton *automatic_radio;
+        GtkBox         *content_box;
+        GtkRadioButton *dhcp_radio;
+        GtkRadioButton *disabled_radio;
+        GtkEntry       *dns_entry;
+        GtkRadioButton *local_radio;
+        GtkRadioButton *manual_radio;
+        GtkCheckButton *never_default_check;
+        GtkBox         *routes_box;
+        GtkSizeGroup   *routes_metric_sizegroup;
+        GtkSizeGroup   *routes_sizegroup;
+
         NMSettingIPConfig *setting;
 
-        GtkToggleButton *disabled;
         GtkWidget       *address_list;
-        GtkSwitch       *auto_dns;
-        GtkWidget       *dns_entry;
-        GtkSwitch       *auto_routes;
         GtkWidget       *routes_list;
-        GtkWidget       *never_default;
 };
 
 struct _CEPageIP6Class
diff --git a/panels/network/connection-editor/ce-page-security.c 
b/panels/network/connection-editor/ce-page-security.c
index 9e72f2184..8ff86288c 100644
--- a/panels/network/connection-editor/ce-page-security.c
+++ b/panels/network/connection-editor/ce-page-security.c
@@ -126,16 +126,14 @@ wsec_size_group_clear (GtkSizeGroup *group)
 static void
 security_combo_changed (CEPageSecurity *page)
 {
-        GtkWidget *vbox;
         GList *l, *children;
         g_autoptr(WirelessSecurity) sec = NULL;
 
         wsec_size_group_clear (page->group);
 
-        vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "box"));
-        children = gtk_container_get_children (GTK_CONTAINER (vbox));
+        children = gtk_container_get_children (GTK_CONTAINER (page->box));
         for (l = children; l; l = l->next) {
-                gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (l->data));
+                gtk_container_remove (GTK_CONTAINER (page->box), GTK_WIDGET (l->data));
         }
 
         sec = security_combo_get_active (page);
@@ -149,10 +147,10 @@ security_combo_changed (CEPageSecurity *page)
                 if (parent)
                         gtk_container_remove (GTK_CONTAINER (parent), sec_widget);
 
-                gtk_size_group_add_widget (page->group, page->security_heading);
+                gtk_size_group_add_widget (page->group, GTK_WIDGET (page->security_label));
                 wireless_security_add_to_size_group (sec, page->group);
 
-                gtk_container_add (GTK_CONTAINER (vbox), sec_widget);
+                gtk_container_add (GTK_CONTAINER (page->box), sec_widget);
         }
 
         ce_page_changed (CE_PAGE (page));
@@ -213,7 +211,6 @@ finish_setup (CEPageSecurity *page)
         NMUtilsSecurityType default_type = NMU_SEC_NONE;
         int active = -1;
         int item = 0;
-        GtkComboBox *combo;
         GtkCellRenderer *renderer;
 
         sw = nm_connection_get_setting_wireless (connection);
@@ -221,8 +218,9 @@ finish_setup (CEPageSecurity *page)
 
         page->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
 
-        page->security_heading = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_label"));
-        page->security_combo = combo = GTK_COMBO_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_combo"));
+        page->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "box"));
+        page->security_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_label"));
+        page->security_combo = GTK_COMBO_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, 
"security_combo"));
 
         dev_caps =   NM_WIFI_DEVICE_CAP_CIPHER_WEP40
                    | NM_WIFI_DEVICE_CAP_CIPHER_WEP104
@@ -338,20 +336,18 @@ finish_setup (CEPageSecurity *page)
                 }
         }
 
-        gtk_combo_box_set_model (combo, GTK_TREE_MODEL (sec_model));
-        gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo));
+        gtk_combo_box_set_model (page->security_combo, GTK_TREE_MODEL (sec_model));
+        gtk_cell_layout_clear (GTK_CELL_LAYOUT (page->security_combo));
 
         renderer = gtk_cell_renderer_text_new ();
-        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
-        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", S_NAME_COLUMN, NULL);
-        gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, &page->adhoc, 
NULL);
+        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (page->security_combo), renderer, TRUE);
+        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (page->security_combo), renderer, "text", 
S_NAME_COLUMN, NULL);
+        gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (page->security_combo), renderer, set_sensitive, 
&page->adhoc, NULL);
 
-        gtk_combo_box_set_active (combo, active < 0 ? 0 : (guint32) active);
-
-        page->security_combo = combo;
+        gtk_combo_box_set_active (page->security_combo, active < 0 ? 0 : (guint32) active);
 
         security_combo_changed (page);
-        g_signal_connect_swapped (combo, "changed",
+        g_signal_connect_swapped (page->security_combo, "changed",
                                   G_CALLBACK (security_combo_changed), page);
 }
 
diff --git a/panels/network/connection-editor/ce-page-security.h 
b/panels/network/connection-editor/ce-page-security.h
index fa7e731a1..d71c1d97b 100644
--- a/panels/network/connection-editor/ce-page-security.h
+++ b/panels/network/connection-editor/ce-page-security.h
@@ -43,8 +43,10 @@ struct _CEPageSecurity
 {
         CEPage parent;
 
+        GtkBox      *box;
         GtkComboBox *security_combo;
-        GtkWidget   *security_heading;
+        GtkLabel    *security_label;
+
         GtkSizeGroup *group;
         gboolean     adhoc;
 };
diff --git a/panels/network/connection-editor/ce-page-vpn.c b/panels/network/connection-editor/ce-page-vpn.c
index f8f20c099..5f004d112 100644
--- a/panels/network/connection-editor/ce-page-vpn.c
+++ b/panels/network/connection-editor/ce-page-vpn.c
@@ -75,8 +75,7 @@ vpn_gnome3ify_editor (GtkWidget *widget)
 static void
 load_vpn_plugin (CEPageVpn *page, NMConnection *connection)
 {
-       CEPage *parent = CE_PAGE (page);
-        GtkWidget *ui_widget, *failure;
+        GtkWidget *ui_widget;
 
         page->editor = nm_vpn_editor_plugin_get_editor (page->plugin,
                                                         connection,
@@ -92,10 +91,9 @@ load_vpn_plugin (CEPageVpn *page, NMConnection *connection)
        }
         vpn_gnome3ify_editor (ui_widget);
 
-        failure = GTK_WIDGET (gtk_builder_get_object (parent->builder, "failure_label"));
-        gtk_widget_destroy (failure);
+        gtk_widget_destroy (GTK_WIDGET (page->failure_label));
 
-        gtk_box_pack_start (page->box, ui_widget, TRUE, TRUE, 0);
+        gtk_box_pack_start (page->page, ui_widget, TRUE, TRUE, 0);
        gtk_widget_show_all (ui_widget);
 
         g_signal_connect_swapped (page->editor, "changed", G_CALLBACK (ce_page_changed), page);
@@ -107,8 +105,8 @@ connect_vpn_page (CEPageVpn *page)
         const gchar *name;
 
         name = nm_setting_connection_get_id (page->setting_connection);
-        gtk_entry_set_text (page->name, name);
-        g_signal_connect_swapped (page->name, "changed", G_CALLBACK (ce_page_changed), page);
+        gtk_entry_set_text (page->name_entry, name);
+        g_signal_connect_swapped (page->name_entry, "changed", G_CALLBACK (ce_page_changed), page);
 }
 
 static gboolean
@@ -119,7 +117,7 @@ validate (CEPage        *page,
         CEPageVpn *self = CE_PAGE_VPN (page);
 
         g_object_set (self->setting_connection,
-                      NM_SETTING_CONNECTION_ID, gtk_entry_get_text (self->name),
+                      NM_SETTING_CONNECTION_ID, gtk_entry_get_text (self->name_entry),
                       NULL);
 
         if (!nm_setting_verify (NM_SETTING (self->setting_connection), NULL, error))
@@ -186,8 +184,9 @@ ce_page_vpn_new (NMConnection     *connection,
                                         "/org/gnome/control-center/network/vpn-page.ui",
                                         _("Identity")));
 
-        page->name = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "name_entry"));
-        page->box = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "page"));
+        page->failure_label = GTK_LABEL (gtk_builder_get_object (CE_PAGE (page)->builder, "failure_label"));
+        page->name_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "name_entry"));
+        page->page = GTK_BOX (gtk_builder_get_object (CE_PAGE (page)->builder, "page"));
 
         g_signal_connect (page, "initialized", G_CALLBACK (finish_setup), NULL);
 
diff --git a/panels/network/connection-editor/ce-page-vpn.h b/panels/network/connection-editor/ce-page-vpn.h
index 9fa706656..4c95f75f6 100644
--- a/panels/network/connection-editor/ce-page-vpn.h
+++ b/panels/network/connection-editor/ce-page-vpn.h
@@ -45,12 +45,13 @@ struct _CEPageVpn
 {
         CEPage parent;
 
+        GtkLabel *failure_label;
+        GtkEntry *name_entry;
+        GtkBox   *page;
+
         NMSettingConnection *setting_connection;
         NMSettingVpn *setting_vpn;
 
-        GtkEntry *name;
-        GtkBox   *box;
-
        NMVpnEditorPlugin *plugin;
        NMVpnEditor *editor;
 };
diff --git a/panels/network/connection-editor/ce-page-wifi.c b/panels/network/connection-editor/ce-page-wifi.c
index 50ca048f9..3efe41623 100644
--- a/panels/network/connection-editor/ce-page-wifi.c
+++ b/panels/network/connection-editor/ce-page-wifi.c
@@ -36,7 +36,6 @@ G_DEFINE_TYPE (CEPageWifi, ce_page_wifi, CE_TYPE_PAGE)
 static void
 connect_wifi_page (CEPageWifi *page)
 {
-        GtkWidget *widget;
         GBytes *ssid;
         g_autofree gchar *utf8_ssid = NULL;
         GPtrArray *bssid_array;
@@ -47,20 +46,14 @@ connect_wifi_page (CEPageWifi *page)
         const gchar *cloned_mac;
         gint i;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
-                                                     "ssid_entry"));
-
         ssid = nm_setting_wireless_get_ssid (page->setting);
         if (ssid)
                 utf8_ssid = nm_utils_ssid_to_utf8 (g_bytes_get_data (ssid, NULL), g_bytes_get_size (ssid));
         else
                 utf8_ssid = g_strdup ("");
-        gtk_entry_set_text (GTK_ENTRY (widget), utf8_ssid);
-
-        g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page);
+        gtk_entry_set_text (page->ssid_entry, utf8_ssid);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
-                                                     "bssid_combo"));
+        g_signal_connect_swapped (page->ssid_entry, "changed", G_CALLBACK (ce_page_changed), page);
 
         bssid_array = g_ptr_array_new ();
         for (i = 0; i < nm_setting_wireless_get_num_seen_bssids (page->setting); i++) {
@@ -69,25 +62,20 @@ connect_wifi_page (CEPageWifi *page)
         g_ptr_array_add (bssid_array, NULL);
         bssid_list = (gchar **) g_ptr_array_free (bssid_array, FALSE);
         s_bssid_str = nm_setting_wireless_get_bssid (page->setting);
-        ce_page_setup_mac_combo (GTK_COMBO_BOX_TEXT (widget), s_bssid_str, bssid_list);
+        ce_page_setup_mac_combo (page->bssid_combo, s_bssid_str, bssid_list);
         g_strfreev (bssid_list);
-        g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page);
+        g_signal_connect_swapped (page->bssid_combo, "changed", G_CALLBACK (ce_page_changed), page);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
-                                                     "mac_combo"));
         mac_list = ce_page_get_mac_list (CE_PAGE (page)->client, NM_TYPE_DEVICE_WIFI,
                                          NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS);
         s_mac_str = nm_setting_wireless_get_mac_address (page->setting);
-        ce_page_setup_mac_combo (GTK_COMBO_BOX_TEXT (widget), s_mac_str, mac_list);
+        ce_page_setup_mac_combo (page->mac_combo, s_mac_str, mac_list);
         g_strfreev (mac_list);
-        g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page);
+        g_signal_connect_swapped (page->mac_combo, "changed", G_CALLBACK (ce_page_changed), page);
 
-
-        widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder,
-                                                     "cloned_mac_combo"));
         cloned_mac = nm_setting_wireless_get_cloned_mac_address (page->setting);
-        ce_page_setup_cloned_mac_combo (GTK_COMBO_BOX_TEXT (widget), cloned_mac);
-        g_signal_connect_swapped (widget, "changed", G_CALLBACK (ce_page_changed), page);
+        ce_page_setup_cloned_mac_combo (page->cloned_mac_combo, cloned_mac);
+        g_signal_connect_swapped (page->cloned_mac_combo, "changed", G_CALLBACK (ce_page_changed), page);
 }
 
 static void
@@ -96,25 +84,22 @@ ui_to_setting (CEPageWifi *page)
         g_autoptr(GBytes) ssid = NULL;
         const gchar *utf8_ssid, *bssid;
         GtkWidget *entry;
-        GtkComboBoxText *combo;
         g_autofree gchar *device_mac = NULL;
         g_autofree gchar *cloned_mac = NULL;
 
-        entry = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (page)->builder, "ssid_entry"));
-        utf8_ssid = gtk_entry_get_text (GTK_ENTRY (entry));
+        utf8_ssid = gtk_entry_get_text (page->ssid_entry);
         if (!utf8_ssid || !*utf8_ssid)
                 ssid = NULL;
         else {
                 ssid = g_bytes_new_static (utf8_ssid, strlen (utf8_ssid));
         }
-        entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (CE_PAGE (page)->builder, 
"bssid_combo")));
+        entry = gtk_bin_get_child (GTK_BIN (page->bssid_combo));
         bssid = gtk_entry_get_text (GTK_ENTRY (entry));
         if (*bssid == '\0')
                 bssid = NULL;
-        entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_combo")));
+        entry = gtk_bin_get_child (GTK_BIN (page->mac_combo));
         device_mac = ce_page_trim_address (gtk_entry_get_text (GTK_ENTRY (entry)));
-        combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, "cloned_mac_combo"));
-        cloned_mac = ce_page_cloned_mac_get (combo);
+        cloned_mac = ce_page_cloned_mac_get (page->cloned_mac_combo);
 
         g_object_set (page->setting,
                       NM_SETTING_WIRELESS_SSID, ssid,
@@ -125,15 +110,15 @@ ui_to_setting (CEPageWifi *page)
 }
 
 static gboolean
-validate (CEPage        *page,
+validate (CEPage        *parent,
           NMConnection  *connection,
           GError       **error)
 {
+        CEPageWifi *page = (CEPageWifi *) parent;
         GtkWidget *entry;
-        GtkComboBoxText *combo;
         gboolean ret = TRUE;
 
-        entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (page->builder, "bssid_combo")));
+        entry = gtk_bin_get_child (GTK_BIN (page->bssid_combo));
         if (!ce_page_address_is_valid (gtk_entry_get_text (GTK_ENTRY (entry)))) {
                 widget_set_error (entry);
                 ret = FALSE;
@@ -141,7 +126,7 @@ validate (CEPage        *page,
                 widget_unset_error (entry);
         }
 
-        entry = gtk_bin_get_child (GTK_BIN (gtk_builder_get_object (page->builder, "mac_combo")));
+        entry = gtk_bin_get_child (GTK_BIN (page->mac_combo));
         if (!ce_page_address_is_valid (gtk_entry_get_text (GTK_ENTRY (entry)))) {
                 widget_set_error (entry);
                 ret = FALSE;
@@ -149,12 +134,11 @@ validate (CEPage        *page,
                 widget_unset_error (entry);
         }
 
-        combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (page->builder, "cloned_mac_combo"));
-        if (!ce_page_cloned_mac_combo_valid (combo)) {
-                widget_set_error (gtk_bin_get_child (GTK_BIN (combo)));
+        if (!ce_page_cloned_mac_combo_valid (page->cloned_mac_combo)) {
+                widget_set_error (gtk_bin_get_child (GTK_BIN (page->cloned_mac_combo)));
                 ret = FALSE;
         } else {
-                widget_unset_error (gtk_bin_get_child (GTK_BIN (combo)));
+                widget_unset_error (gtk_bin_get_child (GTK_BIN (page->cloned_mac_combo)));
         }
 
         if (!ret)
@@ -190,6 +174,11 @@ ce_page_wifi_new (NMConnection     *connection,
                                           "/org/gnome/control-center/network/wifi-page.ui",
                                           _("Identity")));
 
+        page->bssid_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, 
"bssid_combo"));
+        page->cloned_mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, 
"cloned_mac_combo"));
+        page->mac_combo = GTK_COMBO_BOX_TEXT (gtk_builder_get_object (CE_PAGE (page)->builder, "mac_combo"));
+        page->ssid_entry = GTK_ENTRY (gtk_builder_get_object (CE_PAGE (page)->builder, "ssid_entry"));
+
         page->setting = nm_connection_get_setting_wireless (connection);
 
         connect_wifi_page (page);
diff --git a/panels/network/connection-editor/ce-page-wifi.h b/panels/network/connection-editor/ce-page-wifi.h
index 28c3024f0..e7764fc99 100644
--- a/panels/network/connection-editor/ce-page-wifi.h
+++ b/panels/network/connection-editor/ce-page-wifi.h
@@ -43,6 +43,11 @@ struct _CEPageWifi
 {
         CEPage parent;
 
+        GtkComboBoxText *bssid_combo;
+        GtkComboBoxText *cloned_mac_combo;
+        GtkComboBoxText *mac_combo;
+        GtkEntry        *ssid_entry;
+
         NMSettingWireless *setting;
 };
 
diff --git a/panels/network/net-device-ethernet.c b/panels/network/net-device-ethernet.c
index 2e84e46ae..4d9b94a73 100644
--- a/panels/network/net-device-ethernet.c
+++ b/panels/network/net-device-ethernet.c
@@ -39,14 +39,18 @@ struct _NetDeviceEthernet
 {
         NetDeviceSimple parent;
 
-        GtkBuilder *builder;
-
-        GtkWidget *list;
-        GtkWidget *scrolled_window;
-        GtkWidget *details;
-        GtkWidget *details_button;
-        GtkWidget *add_profile_button;
-        gboolean   updating_device;
+        GtkBuilder        *builder;
+        GtkButton         *add_profile_button;
+        GtkBox            *box;
+        GtkButton         *details_button;
+        GtkFrame          *details_frame;
+        HdyActionRow      *details_row;
+        GtkLabel          *device_label;
+        GtkSwitch         *device_off_switch;
+        GtkScrolledWindow *scrolled_window;
+
+        GtkListBox *list;
+        gboolean    updating_device;
 
         GHashTable *connections;
 };
@@ -75,11 +79,9 @@ device_ethernet_add_to_stack (NetObject    *object,
                               GtkSizeGroup *heading_size_group)
 {
         NetDeviceEthernet *device = NET_DEVICE_ETHERNET (object);
-        GtkWidget *vbox;
 
-        vbox = GTK_WIDGET (gtk_builder_get_object (device->builder, "box"));
-        gtk_stack_add_named (stack, vbox, net_object_get_id (object));
-        return vbox;
+        gtk_stack_add_named (stack, GTK_WIDGET (device->box), net_object_get_id (object));
+        return GTK_WIDGET (device->box);
 }
 
 static void
@@ -203,29 +205,25 @@ device_ethernet_refresh_ui (NetDeviceEthernet *device)
 {
         NMDevice *nm_device;
         NMDeviceState state;
-        GtkWidget *widget;
         g_autofree gchar *speed = NULL;
         g_autofree gchar *status = NULL;
 
         nm_device = net_device_get_nm_device (NET_DEVICE (device));
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "device_label"));
-        gtk_label_set_label (GTK_LABEL (widget), net_object_get_title (NET_OBJECT (device)));
+        gtk_label_set_label (device->device_label, net_object_get_title (NET_OBJECT (device)));
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "device_off_switch"));
         state = nm_device_get_state (nm_device);
-        gtk_widget_set_sensitive (widget,
+        gtk_widget_set_sensitive (GTK_WIDGET (device->device_off_switch),
                                   state != NM_DEVICE_STATE_UNAVAILABLE
                                   && state != NM_DEVICE_STATE_UNMANAGED);
         device->updating_device = TRUE;
-        gtk_switch_set_active (GTK_SWITCH (widget), device_state_to_off_switch (state));
+        gtk_switch_set_active (device->device_off_switch, device_state_to_off_switch (state));
         device->updating_device = FALSE;
 
         if (state != NM_DEVICE_STATE_UNAVAILABLE)
                 speed = net_device_simple_get_speed (NET_DEVICE_SIMPLE (device));
-        widget = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_row"));
         status = panel_device_status_to_localized_string (nm_device, speed);
-        hdy_action_row_set_title (HDY_ACTION_ROW (widget), status);
+        hdy_action_row_set_title (device->details_row, status);
 
         populate_ui (device);
 }
@@ -246,7 +244,7 @@ show_details (NetDeviceEthernet *device, GtkButton *button, const gchar *title)
         NMClient *client;
         NMDevice *nmdev;
 
-        window = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (device->builder, "vbox6")));
+        window = gtk_widget_get_toplevel (GTK_WIDGET (device->box));
 
         row = g_object_get_data (G_OBJECT (button), "row");
         connection = NM_CONNECTION (g_object_get_data (G_OBJECT (row), "connection"));
@@ -274,7 +272,7 @@ show_details_for_wired (NetDeviceEthernet *device)
          * profile. It is also used to display ethernet in the
          * device list.
          */
-        show_details (device, GTK_BUTTON (device->details_button), _("Wired"));
+        show_details (device, device->details_button, _("Wired"));
 }
 
 static void
@@ -386,22 +384,22 @@ populate_ui (NetDeviceEthernet *device)
         n_connections = g_slist_length (connections);
 
         if (n_connections > 1) {
-                gtk_widget_hide (device->details);
+                gtk_widget_hide (GTK_WIDGET (device->details_frame));
                 for (l = connections; l; l = l->next) {
                         NMConnection *connection = l->data;
                         add_row (device, connection);
                 }
-                gtk_widget_show (device->scrolled_window);
+                gtk_widget_show (GTK_WIDGET (device->scrolled_window));
         } else if (n_connections == 1) {
                 connection = connections->data;
-                gtk_widget_hide (device->scrolled_window);
-                gtk_widget_show_all (device->details);
+                gtk_widget_hide (GTK_WIDGET (device->scrolled_window));
+                gtk_widget_show_all (GTK_WIDGET (device->details_frame));
                 g_object_set_data (G_OBJECT (device->details_button), "row", device->details_button);
                 g_object_set_data (G_OBJECT (device->details_button), "connection", connection);
 
         } else {
-                gtk_widget_hide (device->scrolled_window);
-                gtk_widget_hide (device->details);
+                gtk_widget_hide (GTK_WIDGET (device->scrolled_window));
+                gtk_widget_hide (GTK_WIDGET (device->details_frame));
         }
 
         g_slist_free (connections);
@@ -445,7 +443,7 @@ add_profile (NetDeviceEthernet *device)
 
         nm_connection_add_setting (connection, nm_setting_wired_new ());
 
-        window = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (device->builder, "vbox6")));
+        window = gtk_widget_get_toplevel (GTK_WIDGET (device->box));
 
         nmdev = net_device_get_nm_device (NET_DEVICE (device));
         editor = net_connection_editor_new (GTK_WINDOW (window), connection, nmdev, NULL, client);
@@ -466,7 +464,7 @@ device_off_toggled (NetDeviceEthernet *device)
         client = net_object_get_client (NET_OBJECT (device));
         nm_device = net_device_get_nm_device (NET_DEVICE (device));
 
-        if (gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (device->builder, 
"device_off_switch")))) {
+        if (gtk_switch_get_active (device->device_off_switch)) {
                 connection = net_device_get_find_connection (NET_DEVICE (device));
                 if (connection != NULL) {
                         nm_client_activate_connection_async (client,
@@ -512,31 +510,21 @@ device_ethernet_constructed (GObject *object)
 {
         NetDeviceEthernet *device = NET_DEVICE_ETHERNET (object);
         NMClient *client;
-        GtkWidget *list;
-        GtkWidget *swin;
-        GtkWidget *widget;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device->builder,
-                                                     "device_off_switch"));
-        g_signal_connect_swapped (widget, "notify::active",
+        g_signal_connect_swapped (device->device_off_switch, "notify::active",
                                   G_CALLBACK (device_off_toggled), device);
 
-        device->scrolled_window = swin = GTK_WIDGET (gtk_builder_get_object (device->builder, 
"scrolled_window"));
-        device->list = list = GTK_WIDGET (gtk_list_box_new ());
-        gtk_list_box_set_selection_mode (GTK_LIST_BOX (list), GTK_SELECTION_NONE);
-        gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL);
-        gtk_container_add (GTK_CONTAINER (swin), list);
-        g_signal_connect_swapped (list, "row-activated",
+        device->list = GTK_LIST_BOX (gtk_list_box_new ());
+        gtk_list_box_set_selection_mode (device->list, GTK_SELECTION_NONE);
+        gtk_list_box_set_header_func (device->list, cc_list_box_update_header_func, NULL, NULL);
+        gtk_container_add (GTK_CONTAINER (device->scrolled_window), GTK_WIDGET (device->list));
+        g_signal_connect_swapped (device->list, "row-activated",
                                   G_CALLBACK (connection_activated), device);
-        gtk_widget_show (list);
-
-        device->details = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_frame"));
+        gtk_widget_show (GTK_WIDGET (device->list));
 
-        device->details_button = GTK_WIDGET (gtk_builder_get_object (device->builder, "details_button"));
         g_signal_connect_swapped (device->details_button, "clicked",
                                   G_CALLBACK (show_details_for_wired), device);
 
-        device->add_profile_button = GTK_WIDGET (gtk_builder_get_object (device->builder, 
"add_profile_button"));
         g_signal_connect_swapped (device->add_profile_button, "clicked",
                                   G_CALLBACK (add_profile), device);
 
@@ -595,6 +583,15 @@ net_device_ethernet_init (NetDeviceEthernet *device)
                 return;
         }
 
+        device->add_profile_button = GTK_BUTTON (gtk_builder_get_object (device->builder, 
"add_profile_button"));
+        device->box = GTK_BOX (gtk_builder_get_object (device->builder, "box"));
+        device->details_button = GTK_BUTTON (gtk_builder_get_object (device->builder, "details_button"));
+        device->details_frame = GTK_FRAME (gtk_builder_get_object (device->builder, "details_frame"));
+        device->details_row = HDY_ACTION_ROW (gtk_builder_get_object (device->builder, "details_row"));
+        device->device_label = GTK_LABEL (gtk_builder_get_object (device->builder, "device_label"));
+        device->device_off_switch = GTK_SWITCH (gtk_builder_get_object (device->builder, 
"device_off_switch"));
+        device->scrolled_window = GTK_SCROLLED_WINDOW (gtk_builder_get_object (device->builder, 
"scrolled_window"));
+
         device->connections = g_hash_table_new (NULL, NULL);
 
         g_signal_connect (device, "notify::title", G_CALLBACK (device_title_changed), NULL);
diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
index 7c00d0c78..cf3c98f05 100644
--- a/panels/network/net-device-mobile.c
+++ b/panels/network/net-device-mobile.c
@@ -38,7 +38,29 @@ static void nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile);
 struct _NetDeviceMobile
 {
         NetDevice   parent;
-        GtkBuilder *builder;
+
+        GtkBuilder   *builder;
+        GtkBox       *box;
+        GtkLabel     *device_label;
+        GtkSwitch    *device_off_switch;
+        GtkLabel     *dns_heading_label;
+        GtkLabel     *dns_label;
+        GtkLabel     *imei_heading_label;
+        GtkLabel     *imei_label;
+        GtkLabel     *ipv4_heading_label;
+        GtkLabel     *ipv4_label;
+        GtkLabel     *ipv6_heading_label;
+        GtkLabel     *ipv6_label;
+        GtkListStore *mobile_connections_list_store;
+        GtkComboBox  *network_combo;
+        GtkLabel     *network_label;
+        GtkButton    *options_button;
+        GtkLabel     *provider_heading_label;
+        GtkLabel     *provider_label;
+        GtkLabel     *route_heading_label;
+        GtkLabel     *route_label;
+        GtkLabel     *status_label;
+
         gboolean    updating_device;
 
         /* Old MM < 0.7 support */
@@ -71,21 +93,14 @@ device_mobile_proxy_add_to_stack (NetObject    *object,
                                   GtkStack     *stack,
                                   GtkSizeGroup *heading_size_group)
 {
-        GtkWidget *widget;
         NetDeviceMobile *device_mobile = NET_DEVICE_MOBILE (object);
 
         /* add widgets to size group */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder,
-                                                     "imei_heading_label"));
-        gtk_size_group_add_widget (heading_size_group, widget);
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder,
-                                                     "network_label"));
-        gtk_size_group_add_widget (heading_size_group, widget);
-
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder,
-                                                     "box"));
-        gtk_stack_add_named (stack, widget, net_object_get_id (object));
-        return widget;
+        gtk_size_group_add_widget (heading_size_group, GTK_WIDGET (device_mobile->imei_heading_label));
+        gtk_size_group_add_widget (heading_size_group, GTK_WIDGET (device_mobile->network_label));
+
+        gtk_stack_add_named (stack, GTK_WIDGET (device_mobile->box), net_object_get_id (object));
+        return GTK_WIDGET (device_mobile->box);
 }
 
 static void
@@ -117,7 +132,7 @@ mobile_connection_changed_cb (NetDeviceMobile *device_mobile)
         if (device_mobile->updating_device)
                 return;
 
-        ret = gtk_combo_box_get_active_iter (GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, 
"combobox_network")), &iter);
+        ret = gtk_combo_box_get_active_iter (device_mobile->network_combo, &iter);
         if (!ret)
                 return;
 
@@ -127,7 +142,7 @@ mobile_connection_changed_cb (NetDeviceMobile *device_mobile)
         client = net_object_get_client (NET_OBJECT (device_mobile));
 
         /* get entry */
-        model = gtk_combo_box_get_model (GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, 
"combobox_network")));
+        model = gtk_combo_box_get_model (device_mobile->network_combo);
         gtk_tree_model_get (model, &iter,
                             COLUMN_ID, &object_path,
                             -1);
@@ -158,7 +173,6 @@ static void
 mobilebb_enabled_toggled (NetDeviceMobile *device_mobile)
 {
         gboolean enabled = FALSE;
-        GtkSwitch *sw;
         NMDevice *device;
 
         device = net_device_get_nm_device (NET_DEVICE (device_mobile));
@@ -181,11 +195,8 @@ mobilebb_enabled_toggled (NetDeviceMobile *device_mobile)
                 }
         }
 
-        sw = GTK_SWITCH (gtk_builder_get_object (device_mobile->builder,
-                                                 "device_off_switch"));
-
         device_mobile->updating_device = TRUE;
-        gtk_switch_set_active (sw, enabled);
+        gtk_switch_set_active (device_mobile->device_off_switch, enabled);
         device_mobile->updating_device = FALSE;
 }
 
@@ -238,7 +249,6 @@ static void
 device_mobile_refresh_equipment_id (NetDeviceMobile *device_mobile)
 {
         const gchar *equipment_id = NULL;
-        GtkWidget *heading, *widget;
 
         if (device_mobile->mm_object != NULL) {
                 MMModem *modem;
@@ -259,9 +269,7 @@ device_mobile_refresh_equipment_id (NetDeviceMobile *device_mobile)
                                                   "ControlCenter::EquipmentIdentifier");
         }
 
-        heading = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "imei_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "imei_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), equipment_id);
+        panel_set_device_widget_details (device_mobile->imei_heading_label, device_mobile->imei_label, 
equipment_id);
 }
 
 static gchar *
@@ -306,11 +314,6 @@ device_mobile_find_provider (NetDeviceMobile *device_mobile,
 static void
 device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile)
 {
-        GtkWidget *heading, *widget;
-
-        heading = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "provider_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "provider_label"));
-
         if (device_mobile->mm_object != NULL) {
                 g_autofree gchar *operator_name = NULL;
                 MMModem3gpp *modem_3gpp;
@@ -347,7 +350,7 @@ device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile)
                                  operator_name);
                 }
 
-                panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), operator_name);
+                panel_set_device_widget_details (device_mobile->provider_heading_label, 
device_mobile->provider_label, operator_name);
         } else {
                 const gchar *gsm;
                 const gchar *cdma;
@@ -360,13 +363,13 @@ device_mobile_refresh_operator_name (NetDeviceMobile *device_mobile)
 
                 if (gsm != NULL && cdma != NULL) {
                         g_autofree gchar *both = g_strdup_printf ("%s, %s", gsm, cdma);
-                        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), both);
+                        panel_set_device_widget_details (device_mobile->provider_heading_label, 
device_mobile->provider_label, both);
                 } else if (gsm != NULL) {
-                        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), gsm);
+                        panel_set_device_widget_details (device_mobile->provider_heading_label, 
device_mobile->provider_label, gsm);
                 } else if (cdma != NULL) {
-                        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), cdma);
+                        panel_set_device_widget_details (device_mobile->provider_heading_label, 
device_mobile->provider_label, cdma);
                 } else {
-                        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
+                        panel_set_device_widget_details (device_mobile->provider_heading_label, 
device_mobile->provider_label, NULL);
                 }
         }
 }
@@ -375,8 +378,6 @@ static void
 nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile)
 {
         gboolean is_connected;
-        GtkListStore *liststore;
-        GtkWidget *widget;
         NMDeviceModemCapabilities caps;
         NMDevice *nm_device;
         g_autofree gchar *status = NULL;
@@ -384,24 +385,19 @@ nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile)
         nm_device = net_device_get_nm_device (NET_DEVICE (device_mobile));
 
         /* set device kind */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "device_label"));
-        g_object_bind_property (device_mobile, "title", widget, "label", 0);
+        g_object_bind_property (device_mobile, "title", device_mobile->device_label, "label", 0);
 
         /* set up the device on/off switch */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "device_off_switch"));
-        gtk_widget_show (widget);
+        gtk_widget_show (GTK_WIDGET (device_mobile->device_off_switch));
         mobilebb_enabled_toggled (device_mobile);
 
         /* set device state, with status */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "status_label"));
         status = panel_device_status_to_localized_string (nm_device, NULL);
-        gtk_label_set_label (GTK_LABEL (widget), status);
+        gtk_label_set_label (device_mobile->status_label, status);
 
         /* sensitive for other connection types if the device is currently connected */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder,
-                                                     "options_button"));
         is_connected = net_device_get_find_connection (NET_DEVICE (device_mobile)) != NULL;
-        gtk_widget_set_sensitive (widget, is_connected);
+        gtk_widget_set_sensitive (GTK_WIDGET (device_mobile->options_button), is_connected);
 
         caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device));
         if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
@@ -412,23 +408,16 @@ nm_device_mobile_refresh_ui (NetDeviceMobile *device_mobile)
         }
 
         /* add possible connections to device */
-        liststore = GTK_LIST_STORE (gtk_builder_get_object (device_mobile->builder,
-                                                            "mobile_connections_list_store"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder, "network_combo"));
         device_add_device_connections (device_mobile,
                                        nm_device,
-                                       liststore,
-                                       GTK_COMBO_BOX (widget));
+                                       device_mobile->mobile_connections_list_store,
+                                       device_mobile->network_combo);
 
         /* set IP entries */
-        panel_set_device_widgets (GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"ipv4_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv4_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"ipv6_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "ipv6_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"dns_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "dns_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"route_heading_label")),
-                                  GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "route_label")),
+        panel_set_device_widgets (device_mobile->ipv4_heading_label, device_mobile->ipv4_label,
+                                  device_mobile->ipv6_heading_label, device_mobile->ipv6_label,
+                                  device_mobile->dns_heading_label, device_mobile->dns_label,
+                                  device_mobile->route_heading_label, device_mobile->route_label,
                                   nm_device);
 }
 
@@ -452,7 +441,7 @@ device_off_toggled (NetDeviceMobile *device_mobile)
         if (device_mobile->updating_device)
                 return;
 
-        active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (device_mobile->builder, 
"device_off_switch")));
+        active = gtk_switch_get_active (device_mobile->device_off_switch);
         if (active) {
                 client = net_object_get_client (NET_OBJECT (device_mobile));
                 connection = net_device_get_find_connection (NET_DEVICE (device_mobile));
@@ -875,9 +864,7 @@ static void
 net_device_mobile_init (NetDeviceMobile *device_mobile)
 {
         g_autoptr(GError) error = NULL;
-        GtkWidget *widget;
         GtkCellRenderer *renderer;
-        GtkComboBox *combobox;
 
         device_mobile->builder = gtk_builder_new ();
         gtk_builder_add_from_resource (device_mobile->builder,
@@ -888,27 +875,42 @@ net_device_mobile_init (NetDeviceMobile *device_mobile)
                 return;
         }
 
+        device_mobile->box = GTK_BOX (gtk_builder_get_object (device_mobile->builder, "box"));
+        device_mobile->device_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"device_label"));
+        device_mobile->device_off_switch = GTK_SWITCH (gtk_builder_get_object (device_mobile->builder, 
"device_off_switch"));
+        device_mobile->dns_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"dns_heading_label"));
+        device_mobile->dns_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, "dns_label"));
+        device_mobile->imei_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"imei_heading_label"));
+        device_mobile->imei_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"imei_label"));
+        device_mobile->ipv4_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"ipv4_heading_label"));
+        device_mobile->ipv4_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"ipv4_label"));
+        device_mobile->ipv6_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"ipv6_heading_label"));
+        device_mobile->ipv6_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"ipv6_label"));
+        device_mobile->mobile_connections_list_store = GTK_LIST_STORE (gtk_builder_get_object 
(device_mobile->builder, "mobile_connections_list_store"));
+        device_mobile->network_combo = GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder, 
"network_combo"));
+        device_mobile->network_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"network_label"));
+        device_mobile->options_button = GTK_BUTTON (gtk_builder_get_object (device_mobile->builder, 
"options_button"));
+        device_mobile->provider_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"provider_heading_label"));
+        device_mobile->provider_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"provider_label"));
+        device_mobile->route_heading_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"route_heading_label"));
+        device_mobile->route_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"route_label"));
+        device_mobile->status_label = GTK_LABEL (gtk_builder_get_object (device_mobile->builder, 
"status_label"));
+
         /* setup mobile combobox model */
-        combobox = GTK_COMBO_BOX (gtk_builder_get_object (device_mobile->builder,
-                                                          "network_combo"));
-        g_signal_connect_swapped (combobox, "changed",
+        g_signal_connect_swapped (device_mobile->network_combo, "changed",
                                   G_CALLBACK (mobile_connection_changed_cb),
                                   device_mobile);
         renderer = gtk_cell_renderer_text_new ();
-        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
+        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (device_mobile->network_combo),
                                     renderer,
                                     FALSE);
-        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
+        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (device_mobile->network_combo), renderer,
                                         "text", COLUMN_TITLE,
                                         NULL);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder,
-                                                     "device_off_switch"));
-        g_signal_connect_swapped (widget, "notify::active",
+        g_signal_connect_swapped (device_mobile->device_off_switch, "notify::active",
                                   G_CALLBACK (device_off_toggled), device_mobile);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_mobile->builder,
-                                                     "options_button"));
-        g_signal_connect_swapped (widget, "clicked",
+        g_signal_connect_swapped (device_mobile->options_button, "clicked",
                                   G_CALLBACK (edit_connection), device_mobile);
 }
diff --git a/panels/network/net-device-simple.c b/panels/network/net-device-simple.c
index 18749647c..5ee92aa72 100644
--- a/panels/network/net-device-simple.c
+++ b/panels/network/net-device-simple.c
@@ -33,7 +33,14 @@
 
 typedef struct
 {
-        GtkBuilder *builder;
+        GtkBuilder   *builder;
+        GtkBox       *box;
+        GtkLabel     *device_label;
+        GtkSwitch    *device_off_switch;
+        GtkGrid      *grid;
+        GtkButton    *options_button;
+        GtkSeparator *separator;
+
         gboolean    updating_device;
 } NetDeviceSimplePrivate;
 
@@ -44,11 +51,9 @@ net_device_simple_set_show_separator (NetDeviceSimple *device_simple,
                                       gboolean         show_separator)
 {
         NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple);
-        GtkWidget *widget;
 
         /* add widgets to size group */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "separator"));
-        gtk_widget_set_visible (widget, show_separator);
+        gtk_widget_set_visible (GTK_WIDGET (priv->separator), show_separator);
 }
 
 static GtkWidget *
@@ -56,15 +61,12 @@ device_simple_proxy_add_to_stack (NetObject    *object,
                                   GtkStack     *stack,
                                   GtkSizeGroup *heading_size_group)
 {
-        GtkWidget *widget;
         NetDeviceSimple *device_simple = NET_DEVICE_SIMPLE (object);
         NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple);
 
         /* add widgets to size group */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "box"));
-        gtk_stack_add_named (stack, widget, net_object_get_id (object));
-        return widget;
+        gtk_stack_add_named (stack, GTK_WIDGET (priv->box), net_object_get_id (object));
+        return GTK_WIDGET (priv->box);
 }
 
 static void
@@ -94,27 +96,23 @@ static void
 nm_device_simple_refresh_ui (NetDeviceSimple *device_simple)
 {
         NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple);
-        GtkWidget *widget;
         NMDevice *nm_device;
         NMDeviceState state;
 
         nm_device = net_device_get_nm_device (NET_DEVICE (device_simple));
 
         /* set device kind */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label"));
-        g_object_bind_property (device_simple, "title", widget, "label", 0);
+        g_object_bind_property (device_simple, "title", priv->device_label, "label", 0);
 
         /* set up the device on/off switch */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_off_switch"));
         state = nm_device_get_state (nm_device);
-        gtk_widget_set_visible (widget,
+        gtk_widget_set_visible (GTK_WIDGET (priv->device_off_switch),
                                 state != NM_DEVICE_STATE_UNAVAILABLE
                                 && state != NM_DEVICE_STATE_UNMANAGED);
-        update_off_switch_from_device_state (GTK_SWITCH (widget), state, device_simple);
+        update_off_switch_from_device_state (priv->device_off_switch, state, device_simple);
 
         /* set up the Options button */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "options_button"));
-        gtk_widget_set_visible (widget, state != NM_DEVICE_STATE_UNMANAGED);
+        gtk_widget_set_visible (GTK_WIDGET (priv->options_button), state != NM_DEVICE_STATE_UNMANAGED);
 }
 
 static void
@@ -138,7 +136,7 @@ device_off_toggled (NetDeviceSimple *device_simple)
         if (priv->updating_device)
                 return;
 
-        active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (priv->builder, 
"device_off_switch")));
+        active = gtk_switch_get_active (priv->device_off_switch);
         if (active) {
                 client = net_object_get_client (NET_OBJECT (device_simple));
                 connection = net_device_get_find_connection (NET_DEVICE (device_simple));
@@ -219,7 +217,6 @@ net_device_simple_init (NetDeviceSimple *device_simple)
 {
         NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple);
         g_autoptr(GError) error = NULL;
-        GtkWidget *widget;
 
         priv->builder = gtk_builder_new ();
         gtk_builder_add_from_resource (priv->builder,
@@ -230,15 +227,18 @@ net_device_simple_init (NetDeviceSimple *device_simple)
                 return;
         }
 
+        priv->box = GTK_BOX (gtk_builder_get_object (priv->builder, "box"));
+        priv->device_label = GTK_LABEL (gtk_builder_get_object (priv->builder, "device_label"));
+        priv->device_off_switch = GTK_SWITCH (gtk_builder_get_object (priv->builder, "device_off_switch"));
+        priv->grid = GTK_GRID (gtk_builder_get_object (priv->builder, "grid"));
+        priv->options_button = GTK_BUTTON (gtk_builder_get_object (priv->builder, "options_button"));
+        priv->separator = GTK_SEPARATOR (gtk_builder_get_object (priv->builder, "separator"));
+
         /* setup simple combobox model */
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "device_off_switch"));
-        g_signal_connect_swapped (widget, "notify::active",
+        g_signal_connect_swapped (priv->device_off_switch, "notify::active",
                                   G_CALLBACK (device_off_toggled), device_simple);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
-                                                     "options_button"));
-        g_signal_connect_swapped (widget, "clicked",
+        g_signal_connect_swapped (priv->options_button, "clicked",
                                   G_CALLBACK (edit_connection), device_simple);
 }
 
@@ -256,22 +256,19 @@ net_device_simple_add_row (NetDeviceSimple *device_simple,
                            const char      *property_name)
 {
         NetDeviceSimplePrivate *priv = net_device_simple_get_instance_private (device_simple);
-        GtkGrid *grid;
         GtkWidget *label, *value;
         GtkStyleContext *context;
         gint top_attach;
 
-        grid = GTK_GRID (gtk_builder_get_object (priv->builder, "grid"));
-
         label = gtk_label_new (label_string);
         gtk_widget_set_halign (label, GTK_ALIGN_END);
-        gtk_container_add (GTK_CONTAINER (grid), label);
+        gtk_container_add (GTK_CONTAINER (priv->grid), label);
 
         context = gtk_widget_get_style_context (label);
         gtk_style_context_add_class (context, "dim-label");
         gtk_widget_show (label);
 
-        gtk_container_child_get (GTK_CONTAINER (grid), label,
+        gtk_container_child_get (GTK_CONTAINER (priv->grid), label,
                                  "top-attach", &top_attach,
                                  NULL);
 
@@ -279,7 +276,7 @@ net_device_simple_add_row (NetDeviceSimple *device_simple,
         gtk_widget_set_halign (value, GTK_ALIGN_START);
         g_object_bind_property (device_simple, property_name, value, "label", 0);
         gtk_label_set_mnemonic_widget (GTK_LABEL (label), value);
-        gtk_grid_attach (grid, value, 1, top_attach, 1, 1);
+        gtk_grid_attach (priv->grid, value, 1, top_attach, 1, 1);
         gtk_widget_show (value);
 }
 
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index ce1126725..54a8a147f 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -59,7 +59,26 @@ struct _NetDeviceWifi
         NetDevice                parent;
 
         GtkBuilder              *builder;
-        GtkSwitch               *hotspot_switch;
+        GtkBox                  *center_box;
+        GtkButton               *connect_hidden_button;
+        GtkSwitch               *device_off_switch;
+        GtkBox                  *header_box;
+        GtkButton               *history_button;
+        GtkLabel                *hotspot_connected_heading_label;
+        GtkLabel                *hotspot_connected_label;
+        GtkLabel                *hotspot_network_name_heading_label;
+        GtkLabel                *hotspot_network_name_label;
+        GtkSwitch               *hotspot_off_switch;
+        GtkLabel                *hotspot_security_heading_label;
+        GtkLabel                *hotspot_security_key_heading_label;
+        GtkLabel                *hotspot_security_key_label;
+        GtkLabel                *hotspot_security_label;
+        GtkBox                  *listbox_box;
+        GtkNotebook             *notebook;
+        GtkButton               *start_hotspot_button;
+        GtkLabel                *status_label;
+        GtkLabel                *title_label;
+
         gboolean                 updating_device;
         gchar                   *selected_ssid_title;
         gchar                   *selected_connection_id;
@@ -85,13 +104,13 @@ G_DEFINE_TYPE (NetDeviceWifi, net_device_wifi, NET_TYPE_DEVICE)
 GtkWidget *
 net_device_wifi_get_header_widget (NetDeviceWifi *device_wifi)
 {
-        return GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "header_box"));
+        return GTK_WIDGET (device_wifi->header_box);
 }
 
 GtkWidget *
 net_device_wifi_get_title_widget (NetDeviceWifi *device_wifi)
 {
-        return GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "center_box"));
+        return GTK_WIDGET (device_wifi->center_box);
 }
 
 static GtkWidget *
@@ -100,18 +119,15 @@ device_wifi_proxy_add_to_stack (NetObject    *object,
                                 GtkSizeGroup *heading_size_group)
 {
         NMDevice *nmdevice;
-        GtkWidget *widget;
         NetDeviceWifi *device_wifi = NET_DEVICE_WIFI (object);
 
         nmdevice = net_device_get_nm_device (NET_DEVICE (object));
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "notebook"));
-        gtk_stack_add_titled (stack, widget,
+        gtk_stack_add_titled (stack, GTK_WIDGET (device_wifi->notebook),
                               net_object_get_id (object),
                               nm_device_get_description (nmdevice));
 
-        return widget;
+        return GTK_WIDGET (device_wifi->notebook);
 }
 
 static void
@@ -132,7 +148,6 @@ static void
 wireless_enabled_toggled (NetDeviceWifi *device_wifi)
 {
         gboolean enabled;
-        GtkSwitch *sw;
         NMDevice *device;
 
         device = net_device_get_nm_device (NET_DEVICE (device_wifi));
@@ -140,11 +155,9 @@ wireless_enabled_toggled (NetDeviceWifi *device_wifi)
                 return;
 
         enabled = nm_client_wireless_get_enabled (net_object_get_client (NET_OBJECT (device_wifi)));
-        sw = GTK_SWITCH (gtk_builder_get_object (device_wifi->builder,
-                                                 "device_off_switch"));
 
         device_wifi->updating_device = TRUE;
-        gtk_switch_set_active (sw, enabled);
+        gtk_switch_set_active (device_wifi->device_off_switch, enabled);
         if (!enabled)
                 disable_scan_timeout (device_wifi);
         device_wifi->updating_device = FALSE;
@@ -304,7 +317,6 @@ nm_device_wifi_refresh_hotspot (NetDeviceWifi *device_wifi)
         g_autofree gchar *hotspot_security = NULL;
         g_autofree gchar *hotspot_ssid = NULL;
         NMDevice *nm_device;
-        GtkWidget *heading, *widget;
 
         /* refresh hotspot ui */
         nm_device = net_device_get_nm_device (NET_DEVICE (device_wifi));
@@ -319,18 +331,10 @@ nm_device_wifi_refresh_hotspot (NetDeviceWifi *device_wifi)
         g_debug ("Refreshing hotspot labels to name: '%s', security key: '%s', security: '%s'",
                  hotspot_ssid, hotspot_secret, hotspot_security);
 
-        heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, 
"hotspot_network_name_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_network_name_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_ssid);
-        heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, 
"hotspot_security_key_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_security_key_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_secret);
-        heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, 
"hotspot_security_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_security_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), hotspot_security);
-        heading = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, 
"hotspot_connected_heading_label"));
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "hotspot_connected_label"));
-        panel_set_device_widget_details (GTK_LABEL (heading), GTK_LABEL (widget), NULL);
+        panel_set_device_widget_details (device_wifi->hotspot_network_name_heading_label, 
device_wifi->hotspot_network_name_label, hotspot_ssid);
+        panel_set_device_widget_details (device_wifi->hotspot_security_key_heading_label, 
device_wifi->hotspot_security_key_label, hotspot_secret);
+        panel_set_device_widget_details (device_wifi->hotspot_security_heading_label, 
device_wifi->hotspot_security_label, hotspot_security);
+        panel_set_device_widget_details (device_wifi->hotspot_connected_heading_label, 
device_wifi->hotspot_connected_label, NULL);
 }
 
 static void
@@ -398,7 +402,6 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
 {
         NMDevice *nm_device;
         NMClient *client;
-        GtkWidget *widget;
         g_autofree gchar *status = NULL;
 
         if (device_is_hotspot (device_wifi)) {
@@ -422,9 +425,8 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
         /* keep this in sync with the signal handler setup in cc_network_panel_init */
         wireless_enabled_toggled (device_wifi);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "status_label"));
         status = panel_device_status_to_localized_string (nm_device, NULL);
-        gtk_label_set_label (GTK_LABEL (widget), status);
+        gtk_label_set_label (device_wifi->status_label, status);
 
         /* update list of APs */
         show_wifi_list (device_wifi);
@@ -447,7 +449,7 @@ device_off_toggled (NetDeviceWifi *device_wifi)
                 return;
 
         client = net_object_get_client (NET_OBJECT (device_wifi));
-        active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, 
"device_off_switch")));
+        active = gtk_switch_get_active (device_wifi->device_off_switch);
         nm_client_wireless_set_enabled (client, active);
         if (!active)
                 disable_scan_timeout (device_wifi);
@@ -668,15 +670,12 @@ is_hotspot_connection (NMConnection *connection)
 static void
 show_hotspot_ui (NetDeviceWifi *device_wifi)
 {
-        GtkWidget *widget;
-
         /* show hotspot tab */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "notebook"));
-        gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 1);
+        gtk_notebook_set_current_page (device_wifi->notebook, 1);
 
         /* force switch to on as this succeeded */
         device_wifi->updating_device = TRUE;
-        gtk_switch_set_active (device_wifi->hotspot_switch, TRUE);
+        gtk_switch_set_active (device_wifi->hotspot_off_switch, TRUE);
         device_wifi->updating_device = FALSE;
 }
 
@@ -791,7 +790,7 @@ start_hotspot (NetDeviceWifi *device_wifi)
         client = net_object_get_client (NET_OBJECT (device_wifi));
         device = net_device_get_nm_device (NET_DEVICE (device_wifi));
 
-        window = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, 
"notebook_view")));
+        window = gtk_widget_get_toplevel (GTK_WIDGET (device_wifi->notebook));
 
         if (!device_wifi->hotspot_dialog)
                 device_wifi->hotspot_dialog = cc_wifi_hotspot_dialog_new (GTK_WINDOW (window));
@@ -859,7 +858,7 @@ stop_shared_connection (NetDeviceWifi *device_wifi)
         if (!found) {
                 g_warning ("Could not stop hotspot connection as no connection attached to the device could 
be found.");
                 device_wifi->updating_device = TRUE;
-                gtk_switch_set_active (device_wifi->hotspot_switch, TRUE);
+                gtk_switch_set_active (device_wifi->hotspot_off_switch, TRUE);
                 device_wifi->updating_device = FALSE;
                 return;
         }
@@ -874,7 +873,7 @@ stop_hotspot_response_cb (NetDeviceWifi *device_wifi, gint response, GtkWidget *
                 stop_shared_connection (device_wifi);
         } else {
                 device_wifi->updating_device = TRUE;
-                gtk_switch_set_active (device_wifi->hotspot_switch, TRUE);
+                gtk_switch_set_active (device_wifi->hotspot_off_switch, TRUE);
                 device_wifi->updating_device = FALSE;
         }
         gtk_widget_destroy (dialog);
@@ -909,9 +908,7 @@ switch_hotspot_changed_cb (NetDeviceWifi *device_wifi)
 static void
 show_wifi_list (NetDeviceWifi *device_wifi)
 {
-        GtkWidget *widget;
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "notebook"));
-        gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0);
+        gtk_notebook_set_current_page (device_wifi->notebook, 0);
 }
 
 static void
@@ -922,9 +919,7 @@ net_device_wifi_constructed (GObject *object)
         NMClientPermissionResult perm;
         NMDevice *nm_device;
         NMDeviceWifiCapabilities caps;
-        GtkWidget *list_container;
         GtkWidget *list;
-        GtkWidget *widget;
 
         G_OBJECT_CLASS (net_device_wifi_parent_class)->constructed (object);
 
@@ -934,10 +929,9 @@ net_device_wifi_constructed (GObject *object)
 
         nm_device = net_device_get_nm_device (NET_DEVICE (device_wifi));
 
-        list_container = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "listbox_box"));
         list = GTK_WIDGET (cc_wifi_connection_list_new (client, NM_DEVICE_WIFI (nm_device), TRUE, TRUE, 
FALSE));
         gtk_widget_show (list);
-        gtk_container_add (GTK_CONTAINER (list_container), list);
+        gtk_container_add (GTK_CONTAINER (device_wifi->listbox_box), list);
 
         gtk_list_box_set_header_func (GTK_LIST_BOX (list), cc_list_box_update_header_func, NULL, NULL);
         gtk_list_box_set_sort_func (GTK_LIST_BOX (list), (GtkListBoxSortFunc)ap_sort, NULL, NULL);
@@ -949,22 +943,19 @@ net_device_wifi_constructed (GObject *object)
                                   device_wifi);
 
         /* only enable the button if the user can create a hotspot */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "start_hotspot_button"));
         perm = nm_client_get_permission_result (client, NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN);
         caps = nm_device_wifi_get_capabilities (NM_DEVICE_WIFI (nm_device));
         if (perm != NM_CLIENT_PERMISSION_RESULT_YES &&
             perm != NM_CLIENT_PERMISSION_RESULT_AUTH) {
-                gtk_widget_set_tooltip_text (widget, _("System policy prohibits use as a Hotspot"));
-                gtk_widget_set_sensitive (widget, FALSE);
+                gtk_widget_set_tooltip_text (GTK_WIDGET (device_wifi->start_hotspot_button), _("System 
policy prohibits use as a Hotspot"));
+                gtk_widget_set_sensitive (GTK_WIDGET (device_wifi->start_hotspot_button), FALSE);
         } else if (!(caps & (NM_WIFI_DEVICE_CAP_AP | NM_WIFI_DEVICE_CAP_ADHOC))) {
-                gtk_widget_set_tooltip_text (widget, _("Wireless device does not support Hotspot mode"));
-                gtk_widget_set_sensitive (widget, FALSE);
+                gtk_widget_set_tooltip_text (GTK_WIDGET (device_wifi->start_hotspot_button), _("Wireless 
device does not support Hotspot mode"));
+                gtk_widget_set_sensitive (GTK_WIDGET (device_wifi->start_hotspot_button), FALSE);
         } else
-                gtk_widget_set_sensitive (widget, TRUE);
+                gtk_widget_set_sensitive (GTK_WIDGET (device_wifi->start_hotspot_button), TRUE);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder, "title_label"));
-        g_object_bind_property (device_wifi, "title", widget, "label", 0);
+        g_object_bind_property (device_wifi, "title", device_wifi->title_label, "label", 0);
 
         nm_device_wifi_refresh_ui (device_wifi);
 }
@@ -1404,7 +1395,6 @@ static void
 net_device_wifi_init (NetDeviceWifi *device_wifi)
 {
         g_autoptr(GError) error = NULL;
-        GtkWidget *widget;
 
         device_wifi->builder = gtk_builder_new ();
         gtk_builder_add_from_resource (device_wifi->builder,
@@ -1415,38 +1405,45 @@ net_device_wifi_init (NetDeviceWifi *device_wifi)
                 return;
         }
 
+        device_wifi->center_box = GTK_BOX (gtk_builder_get_object (device_wifi->builder, "center_box"));
+        device_wifi->connect_hidden_button = GTK_BUTTON (gtk_builder_get_object (device_wifi->builder, 
"connect_hidden_button"));
+        device_wifi->device_off_switch = GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, 
"device_off_switch"));
+        device_wifi->header_box = GTK_BOX (gtk_builder_get_object (device_wifi->builder, "header_box"));
+        device_wifi->history_button = GTK_BUTTON (gtk_builder_get_object (device_wifi->builder, 
"history_button"));
+        device_wifi->hotspot_connected_heading_label = GTK_LABEL (gtk_builder_get_object 
(device_wifi->builder, "hotspot_connected_heading_label"));
+        device_wifi->hotspot_connected_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, 
"hotspot_connected_label"));
+        device_wifi->hotspot_network_name_heading_label = GTK_LABEL (gtk_builder_get_object 
(device_wifi->builder, "hotspot_network_name_heading_label"));
+        device_wifi->hotspot_network_name_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, 
"hotspot_network_name_label"));
+        device_wifi->hotspot_off_switch = GTK_SWITCH (gtk_builder_get_object (device_wifi->builder, 
"hotspot_off_switch"));
+        device_wifi->hotspot_security_heading_label = GTK_LABEL (gtk_builder_get_object 
(device_wifi->builder, "hotspot_security_heading_label"));
+        device_wifi->hotspot_security_key_heading_label = GTK_LABEL (gtk_builder_get_object 
(device_wifi->builder, "hotspot_security_key_heading_label"));
+        device_wifi->hotspot_security_key_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, 
"hotspot_security_key_label"));
+        device_wifi->hotspot_security_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, 
"hotspot_security_label"));
+        device_wifi->listbox_box = GTK_BOX (gtk_builder_get_object (device_wifi->builder, "listbox_box"));
+        device_wifi->notebook = GTK_NOTEBOOK (gtk_builder_get_object (device_wifi->builder, "notebook"));
+        device_wifi->start_hotspot_button = GTK_BUTTON (gtk_builder_get_object (device_wifi->builder, 
"start_hotspot_button"));
+        device_wifi->status_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, 
"status_label"));
+        device_wifi->title_label = GTK_LABEL (gtk_builder_get_object (device_wifi->builder, "title_label"));
+
         device_wifi->cancellable = g_cancellable_new ();
 
         /* setup wifi views */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "device_off_switch"));
-        g_signal_connect_swapped (widget, "notify::active",
+        g_signal_connect_swapped (device_wifi->device_off_switch, "notify::active",
                                   G_CALLBACK (device_off_toggled), device_wifi);
 
         /* setup view */
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "notebook"));
-        gtk_notebook_set_show_tabs (GTK_NOTEBOOK (widget), FALSE);
-        gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 0);
-
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "start_hotspot_button"));
-        g_signal_connect_swapped (widget, "clicked",
+        gtk_notebook_set_show_tabs (device_wifi->notebook, FALSE);
+        gtk_notebook_set_current_page (device_wifi->notebook, 0);
+
+        g_signal_connect_swapped (device_wifi->start_hotspot_button, "clicked",
                                   G_CALLBACK (start_hotspot), device_wifi);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "connect_hidden_button"));
-        g_signal_connect_swapped (widget, "clicked",
+        g_signal_connect_swapped (device_wifi->connect_hidden_button, "clicked",
                                   G_CALLBACK (connect_to_hidden_network), device_wifi);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "history_button"));
-        g_signal_connect_swapped (widget, "clicked",
+        g_signal_connect_swapped (device_wifi->history_button, "clicked",
                                   G_CALLBACK (open_history), device_wifi);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->builder,
-                                                     "hotspot_off_switch"));
-        device_wifi->hotspot_switch = GTK_SWITCH (widget);
-        g_signal_connect_swapped (widget, "notify::active",
+        g_signal_connect_swapped (device_wifi->hotspot_off_switch, "notify::active",
                                   G_CALLBACK (switch_hotspot_changed_cb), device_wifi);
 }
diff --git a/panels/network/net-proxy.c b/panels/network/net-proxy.c
index 362789399..b4938e59d 100644
--- a/panels/network/net-proxy.c
+++ b/panels/network/net-proxy.c
@@ -31,17 +31,35 @@ typedef enum
 {
         MODE_DISABLED,
         MODE_MANUAL,
-        MODE_AUTOMATIC,
-        N_MODES
+        MODE_AUTOMATIC
 } ProxyMode;
 
 struct _NetProxy
 {
         NetObject         parent;
 
-        GSettings        *settings;
         GtkBuilder       *builder;
-        GtkRadioButton   *mode_radios[3];
+        GtkRadioButton   *automatic_radio;
+        GtkDialog        *dialog;
+        GtkButton        *dialog_button;
+        GtkFrame         *main_widget;
+        GtkRadioButton   *manual_radio;
+        GtkRadioButton   *none_radio;
+        GtkEntry         *proxy_ftp_entry;
+        GtkEntry         *proxy_http_entry;
+        GtkEntry         *proxy_https_entry;
+        GtkEntry         *proxy_ignore_entry;
+        GtkAdjustment    *proxy_port_ftp_adjustment;
+        GtkAdjustment    *proxy_port_http_adjustment;
+        GtkAdjustment    *proxy_port_https_adjustment;
+        GtkAdjustment    *proxy_port_socks_adjustment;
+        GtkEntry         *proxy_socks_entry;
+        GtkEntry         *proxy_url_entry;
+        GtkLabel         *proxy_warning_label;
+        GtkStack         *stack;
+        GtkLabel         *status_label;
+
+        GSettings        *settings;
 };
 
 G_DEFINE_TYPE (NetProxy, net_proxy, NET_TYPE_OBJECT)
@@ -65,17 +83,12 @@ static inline void
 panel_update_status_label (NetProxy  *self,
                            ProxyMode  mode)
 {
-        GtkLabel *label;
-
-        /* update the label */
-        label = GTK_LABEL (gtk_builder_get_object (self->builder, "status_label"));
-        gtk_label_set_label (label, panel_get_string_for_value (mode));
+        gtk_label_set_label (self->status_label, panel_get_string_for_value (mode));
 }
 
 static void
 check_wpad_warning (NetProxy *proxy)
 {
-        GtkWidget *widget;
         g_autofree gchar *autoconfig_url = NULL;
         GString *string = NULL;
         gboolean ret = FALSE;
@@ -110,10 +123,8 @@ check_wpad_warning (NetProxy *proxy)
         g_string_append (string, _("This is not recommended for untrusted public networks."));
         g_string_append (string, "</small>");
 out:
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_warning_label"));
-        gtk_label_set_markup (GTK_LABEL (widget), string->str);
-        gtk_widget_set_visible (widget, (string->len > 0));
+        gtk_label_set_markup (proxy->proxy_warning_label, string->str);
+        gtk_widget_set_visible (GTK_WIDGET (proxy->proxy_warning_label), (string->len > 0));
 
         g_string_free (string, TRUE);
 }
@@ -127,20 +138,16 @@ settings_changed_cb (NetProxy *proxy)
 static void
 panel_proxy_mode_setup_widgets (NetProxy *proxy, ProxyMode value)
 {
-        GtkStack *stack;
-
-        stack = GTK_STACK (gtk_builder_get_object (proxy->builder, "stack"));
-
         /* hide or show the PAC text box */
         switch (value) {
         case MODE_DISABLED:
-                gtk_stack_set_visible_child_name (stack, "disabled");
+                gtk_stack_set_visible_child_name (proxy->stack, "disabled");
                 break;
         case MODE_MANUAL:
-                gtk_stack_set_visible_child_name (stack, "manual");
+                gtk_stack_set_visible_child_name (proxy->stack, "manual");
                 break;
         case MODE_AUTOMATIC:
-                gtk_stack_set_visible_child_name (stack, "automatic");
+                gtk_stack_set_visible_child_name (proxy->stack, "automatic");
                 break;
         default:
                 g_assert_not_reached ();
@@ -159,11 +166,11 @@ panel_proxy_mode_radio_changed_cb (NetProxy *proxy, GtkRadioButton *radio)
                 return;
 
         /* get selected radio */
-        if (radio == proxy->mode_radios[MODE_DISABLED])
+        if (radio == proxy->none_radio)
                 value = MODE_DISABLED;
-        else if (radio == proxy->mode_radios[MODE_MANUAL])
+        else if (radio == proxy->manual_radio)
                 value = MODE_MANUAL;
-        else if (radio == proxy->mode_radios[MODE_AUTOMATIC])
+        else if (radio == proxy->automatic_radio)
                 value = MODE_AUTOMATIC;
         else
                 g_assert_not_reached ();
@@ -181,14 +188,8 @@ panel_proxy_mode_radio_changed_cb (NetProxy *proxy, GtkRadioButton *radio)
 static void
 show_dialog_cb (NetProxy *self)
 {
-        GtkWidget *toplevel;
-        GtkWindow *dialog;
-
-        toplevel = gtk_widget_get_toplevel (GTK_WIDGET (gtk_builder_get_object (self->builder, 
"main_widget")));
-        dialog = GTK_WINDOW (gtk_builder_get_object (self->builder, "dialog"));
-
-        gtk_window_set_transient_for (dialog, GTK_WINDOW (toplevel));
-        gtk_window_present (dialog);
+        gtk_window_set_transient_for (GTK_WINDOW (self->dialog), GTK_WINDOW (gtk_widget_get_toplevel 
(GTK_WIDGET (self->main_widget))));
+        gtk_window_present (GTK_WINDOW (self->dialog));
 }
 
 static GtkWidget *
@@ -196,24 +197,19 @@ net_proxy_add_to_stack (NetObject    *object,
                         GtkStack     *stack,
                         GtkSizeGroup *heading_size_group)
 {
-        GtkWidget *widget;
         NetProxy *proxy = NET_PROXY (object);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "main_widget"));
-        gtk_size_group_add_widget (heading_size_group, widget);
-        gtk_stack_add_named (stack, widget, net_object_get_id (object));
-        return widget;
+        gtk_size_group_add_widget (heading_size_group, GTK_WIDGET (proxy->main_widget));
+        gtk_stack_add_named (stack, GTK_WIDGET (proxy->main_widget), net_object_get_id (object));
+        return GTK_WIDGET (proxy->main_widget);
 }
 
 static void
 net_proxy_finalize (GObject *object)
 {
         NetProxy *proxy = NET_PROXY (object);
-        GtkWidget *widget;
 
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, "dialog"));
-        gtk_widget_destroy (widget);
+        gtk_widget_destroy (GTK_WIDGET (proxy->dialog));
 
         g_clear_object (&proxy->settings);
         g_clear_object (&proxy->builder);
@@ -282,15 +278,12 @@ set_ignore_hosts (const GValue       *value,
 static void
 net_proxy_init (NetProxy *proxy)
 {
-        GtkAdjustment *adjustment;
         g_autoptr(GSettings) http_settings = NULL;
         g_autoptr(GSettings) https_settings = NULL;
         g_autoptr(GSettings) ftp_settings = NULL;
         g_autoptr(GSettings) socks_settings = NULL;
         ProxyMode value;
-        GtkWidget *widget;
         g_autoptr(GError) error = NULL;
-        guint i;
 
         proxy->builder = gtk_builder_new ();
         gtk_builder_add_from_resource (proxy->builder,
@@ -301,6 +294,26 @@ net_proxy_init (NetProxy *proxy)
                 return;
         }
 
+        proxy->automatic_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, 
"automatic_radio"));
+        proxy->dialog = GTK_DIALOG (gtk_builder_get_object (proxy->builder, "dialog"));
+        proxy->dialog_button = GTK_BUTTON (gtk_builder_get_object (proxy->builder, "dialog_button"));
+        proxy->main_widget = GTK_FRAME (gtk_builder_get_object (proxy->builder, "main_widget"));
+        proxy->manual_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "manual_radio"));
+        proxy->none_radio = GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "none_radio"));
+        proxy->proxy_ftp_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_ftp_entry"));
+        proxy->proxy_http_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_http_entry"));
+        proxy->proxy_https_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_https_entry"));
+        proxy->proxy_ignore_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, 
"proxy_ignore_entry"));
+        proxy->proxy_port_ftp_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, 
"proxy_port_ftp_adjustment"));
+        proxy->proxy_port_http_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, 
"proxy_port_http_adjustment"));
+        proxy->proxy_port_https_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, 
"proxy_port_https_adjustment"));
+        proxy->proxy_port_socks_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder, 
"proxy_port_socks_adjustment"));
+        proxy->proxy_socks_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_socks_entry"));
+        proxy->proxy_url_entry = GTK_ENTRY (gtk_builder_get_object (proxy->builder, "proxy_url_entry"));
+        proxy->proxy_warning_label = GTK_LABEL (gtk_builder_get_object (proxy->builder, 
"proxy_warning_label"));
+        proxy->stack = GTK_STACK (gtk_builder_get_object (proxy->builder, "stack"));
+        proxy->status_label = GTK_LABEL (gtk_builder_get_object (proxy->builder, "status_label"));
+
         proxy->settings = g_settings_new ("org.gnome.system.proxy");
         g_signal_connect_swapped (proxy->settings,
                                   "changed",
@@ -311,107 +324,84 @@ net_proxy_init (NetProxy *proxy)
         value = g_settings_get_enum (proxy->settings, "mode");
 
         /* bind the proxy values */
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_url_entry"));
         g_settings_bind (proxy->settings, "autoconfig-url",
-                         widget, "text",
+                         proxy->proxy_url_entry, "text",
                          G_SETTINGS_BIND_DEFAULT);
 
         /* bind the HTTP proxy values */
         http_settings = g_settings_get_child (proxy->settings, "http");
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_http_entry"));
         g_settings_bind (http_settings, "host",
-                         widget, "text",
+                         proxy->proxy_http_entry, "text",
                          G_SETTINGS_BIND_DEFAULT);
-        adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder,
-                                                             "proxy_port_http_adjustment"));
         g_settings_bind (http_settings, "port",
-                         adjustment, "value",
+                         proxy->proxy_port_http_adjustment, "value",
                          G_SETTINGS_BIND_DEFAULT);
 
         /* bind the HTTPS proxy values */
         https_settings = g_settings_get_child (proxy->settings, "https");
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_https_entry"));
         g_settings_bind (https_settings, "host",
-                         widget, "text",
+                         proxy->proxy_https_entry, "text",
                          G_SETTINGS_BIND_DEFAULT);
-        adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder,
-                                                             "proxy_port_https_adjustment"));
         g_settings_bind (https_settings, "port",
-                         adjustment, "value",
+                         proxy->proxy_port_https_adjustment, "value",
                          G_SETTINGS_BIND_DEFAULT);
 
         /* bind the FTP proxy values */
         ftp_settings = g_settings_get_child (proxy->settings, "ftp");
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_ftp_entry"));
         g_settings_bind (ftp_settings, "host",
-                         widget, "text",
+                         proxy->proxy_ftp_entry, "text",
                          G_SETTINGS_BIND_DEFAULT);
-        adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder,
-                                                             "proxy_port_ftp_adjustment"));
         g_settings_bind (ftp_settings, "port",
-                         adjustment, "value",
+                         proxy->proxy_port_ftp_adjustment, "value",
                          G_SETTINGS_BIND_DEFAULT);
 
         /* bind the SOCKS proxy values */
         socks_settings = g_settings_get_child (proxy->settings, "socks");
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_socks_entry"));
         g_settings_bind (socks_settings, "host",
-                         widget, "text",
+                         proxy->proxy_socks_entry, "text",
                          G_SETTINGS_BIND_DEFAULT);
-        adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (proxy->builder,
-                                                             "proxy_port_socks_adjustment"));
         g_settings_bind (socks_settings, "port",
-                         adjustment, "value",
+                         proxy->proxy_port_socks_adjustment, "value",
                          G_SETTINGS_BIND_DEFAULT);
 
         /* bind the proxy ignore hosts */
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder,
-                                                     "proxy_ignore_entry"));
         g_settings_bind_with_mapping (proxy->settings, "ignore-hosts",
-                                      widget, "text",
+                                      proxy->proxy_ignore_entry, "text",
                                       G_SETTINGS_BIND_DEFAULT, get_ignore_hosts, set_ignore_hosts,
                                       NULL, NULL);
 
-        /* radio buttons */
-        proxy->mode_radios[MODE_DISABLED] =
-                GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "none_radio"));
-        proxy->mode_radios[MODE_MANUAL] =
-                GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "manual_radio"));
-        proxy->mode_radios[MODE_AUTOMATIC] =
-                GTK_RADIO_BUTTON (gtk_builder_get_object (proxy->builder, "automatic_radio"));
-
         /* setup the radio before connecting to the :toggled signal */
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->mode_radios[value]), TRUE);
+        switch (value) {
+        case MODE_DISABLED:
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->none_radio), TRUE);
+                break;
+        case MODE_MANUAL:
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->manual_radio), TRUE);
+                break;
+        case MODE_AUTOMATIC:
+                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy->automatic_radio), TRUE);
+                break;
+        default:
+                g_assert_not_reached ();
+        }
         panel_proxy_mode_setup_widgets (proxy, value);
         panel_update_status_label (proxy, value);
 
-        for (i = MODE_DISABLED; i < N_MODES; i++) {
-                g_signal_connect_swapped (proxy->mode_radios[i],
-                                          "toggled",
-                                          G_CALLBACK (panel_proxy_mode_radio_changed_cb),
-                                          proxy);
-        }
+        g_signal_connect_swapped (proxy->none_radio, "toggled", G_CALLBACK 
(panel_proxy_mode_radio_changed_cb), proxy);
+        g_signal_connect_swapped (proxy->manual_radio, "toggled", G_CALLBACK 
(panel_proxy_mode_radio_changed_cb), proxy);
+        g_signal_connect_swapped (proxy->automatic_radio, "toggled", G_CALLBACK 
(panel_proxy_mode_radio_changed_cb), proxy);
 
         /* show dialog button */
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, "dialog_button"));
-
-        g_signal_connect_swapped (widget,
+        g_signal_connect_swapped (proxy->dialog_button,
                                   "clicked",
                                   G_CALLBACK (show_dialog_cb),
                                   proxy);
 
         /* prevent the dialog from being destroyed */
-        widget = GTK_WIDGET (gtk_builder_get_object (proxy->builder, "dialog"));
-
-        g_signal_connect (widget,
+        g_signal_connect (proxy->dialog,
                           "delete-event",
                           G_CALLBACK (gtk_widget_hide_on_delete),
-                          widget);
+                          proxy->dialog);
 }
 
 NetProxy *
diff --git a/panels/network/net-vpn.c b/panels/network/net-vpn.c
index 0b8e0c31d..d6f761857 100644
--- a/panels/network/net-vpn.c
+++ b/panels/network/net-vpn.c
@@ -37,6 +37,12 @@ struct _NetVpn
         NetObject               parent;
 
         GtkBuilder              *builder;
+        GtkBox                  *box;
+        GtkLabel                *device_label;
+        GtkSwitch               *device_off_switch;
+        GtkButton               *options_button;
+        GtkSeparator            *separator;
+
         NMConnection            *connection;
         NMActiveConnection      *active_connection;
         gchar                   *service_type;
@@ -58,10 +64,7 @@ void
 net_vpn_set_show_separator (NetVpn   *self,
                             gboolean  show_separator)
 {
-        GtkWidget *separator;
-
-        separator = GTK_WIDGET (gtk_builder_get_object (self->builder, "separator"));
-        gtk_widget_set_visible (separator, show_separator);
+        gtk_widget_set_visible (GTK_WIDGET (self->separator), show_separator);
 }
 
 static void
@@ -132,21 +135,16 @@ vpn_proxy_add_to_stack (NetObject    *object,
                         GtkStack     *stack,
                         GtkSizeGroup *heading_size_group)
 {
-        GtkWidget *widget;
         NetVpn *vpn = NET_VPN (object);
 
         /* add widgets to size group */
-        widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder,
-                                                     "box"));
-        gtk_stack_add_named (stack, widget, net_object_get_id (object));
-        return widget;
+        gtk_stack_add_named (stack, GTK_WIDGET (vpn->box), net_object_get_id (object));
+        return GTK_WIDGET (vpn->box);
 }
 
 static void
 nm_device_refresh_vpn_ui (NetVpn *vpn)
 {
-        GtkWidget *widget;
-        GtkWidget *sw;
         const GPtrArray *acs;
         NMActiveConnection *a;
         gint i;
@@ -155,15 +153,13 @@ nm_device_refresh_vpn_ui (NetVpn *vpn)
         NMClient *client;
 
         /* update title */
-        widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder,
-                                                     "device_label"));
         /* Translators: this is the title of the connection details
          * window for vpn connections, it is also used to display
          * vpn connections in the device list.
          */
         title = g_strdup_printf (_("%s VPN"), nm_connection_get_id (vpn->connection));
         net_object_set_title (NET_OBJECT (vpn), title);
-        gtk_label_set_label (GTK_LABEL (widget), title);
+        gtk_label_set_label (vpn->device_label, title);
 
         if (vpn->active_connection) {
                 g_signal_handlers_disconnect_by_func (vpn->active_connection,
@@ -199,8 +195,7 @@ nm_device_refresh_vpn_ui (NetVpn *vpn)
         }
 
         vpn->updating_device = TRUE;
-        sw = GTK_WIDGET (gtk_builder_get_object (vpn->builder, "device_off_switch"));
-        gtk_switch_set_active (GTK_SWITCH (sw),
+        gtk_switch_set_active (vpn->device_off_switch,
                                state != NM_VPN_CONNECTION_STATE_FAILED &&
                                state != NM_VPN_CONNECTION_STATE_DISCONNECTED);
         vpn->updating_device = FALSE;
@@ -231,7 +226,7 @@ device_off_toggled (NetVpn *vpn)
         if (vpn->updating_device)
                 return;
 
-        active = gtk_switch_get_active (GTK_SWITCH (gtk_builder_get_object (vpn->builder, 
"device_off_switch")));
+        active = gtk_switch_get_active (vpn->device_off_switch);
         if (active) {
                 client = net_object_get_client (NET_OBJECT (vpn));
                 nm_client_activate_connection_async (client,
@@ -270,14 +265,12 @@ static void
 vpn_proxy_edit (NetObject *object)
 {
         NetVpn *vpn = NET_VPN (object);
-        GtkWidget *button, *window;
+        GtkWidget *window;
         NetConnectionEditor *editor;
         NMClient *client;
         g_autofree gchar *title = NULL;
 
-        button = GTK_WIDGET (gtk_builder_get_object (vpn->builder,
-                                                     "options_button"));
-        window = gtk_widget_get_toplevel (button);
+        window = gtk_widget_get_toplevel (GTK_WIDGET (vpn->options_button));
 
         client = net_object_get_client (object);
 
@@ -403,7 +396,6 @@ static void
 net_vpn_init (NetVpn *vpn)
 {
         g_autoptr(GError) error = NULL;
-        GtkWidget *widget;
 
         vpn->builder = gtk_builder_new ();
         gtk_builder_add_from_resource (vpn->builder,
@@ -414,13 +406,15 @@ net_vpn_init (NetVpn *vpn)
                 return;
         }
 
-        widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder,
-                                                     "device_off_switch"));
-        g_signal_connect_swapped (widget, "notify::active",
+        vpn->box = GTK_BOX (gtk_builder_get_object (vpn->builder, "box"));
+        vpn->device_label = GTK_LABEL (gtk_builder_get_object (vpn->builder, "device_label"));
+        vpn->device_off_switch = GTK_SWITCH (gtk_builder_get_object (vpn->builder, "device_off_switch"));
+        vpn->options_button = GTK_BUTTON (gtk_builder_get_object (vpn->builder, "options_button"));
+        vpn->separator = GTK_SEPARATOR (gtk_builder_get_object (vpn->builder, "separator"));
+
+        g_signal_connect_swapped (vpn->device_off_switch, "notify::active",
                                   G_CALLBACK (device_off_toggled), vpn);
 
-        widget = GTK_WIDGET (gtk_builder_get_object (vpn->builder,
-                                                     "options_button"));
-        g_signal_connect_swapped (widget, "clicked",
+        g_signal_connect_swapped (vpn->options_button, "clicked",
                                   G_CALLBACK (edit_connection), vpn);
 }
diff --git a/panels/network/wireless-security/eap-method-fast.c 
b/panels/network/wireless-security/eap-method-fast.c
index 84ccfc0e9..3d789d6a5 100644
--- a/panels/network/wireless-security/eap-method-fast.c
+++ b/panels/network/wireless-security/eap-method-fast.c
@@ -36,6 +36,16 @@
 struct _EAPMethodFAST {
        EAPMethod parent;
 
+       GtkEntry             *anon_identity_entry;
+       GtkLabel             *anon_identity_label;
+       GtkComboBox          *inner_auth_combo;
+       GtkLabel             *inner_auth_label;
+       GtkBox               *inner_auth_box;
+       GtkFileChooserButton *pac_file_button;
+       GtkLabel             *pac_file_label;
+       GtkCheckButton       *pac_provision_check;
+       GtkComboBox          *pac_provision_combo;
+
        GtkSizeGroup *size_group;
        WirelessSecurity *sec_parent;
        gboolean is_editor;
@@ -53,7 +63,7 @@ destroy (EAPMethod *parent)
 static gboolean
 validate (EAPMethod *parent, GError **error)
 {
-       GtkWidget *widget;
+       EAPMethodFAST *self = (EAPMethodFAST *) parent;
        GtkTreeModel *model;
        GtkTreeIter iter;
        g_autoptr(EAPMethod) eap = NULL;
@@ -61,23 +71,17 @@ validate (EAPMethod *parent, GError **error)
        gboolean provisioning;
        gboolean valid = TRUE;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check"));
-       g_assert (widget);
-       provisioning = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button"));
-       g_assert (widget);
-       file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+       provisioning = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->pac_provision_check));
+       file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->pac_file_button));
        if (!provisioning && !file) {
-               widget_set_error (widget);
+               widget_set_error (GTK_WIDGET (self->pac_file_button));
                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-FAST PAC file"));
                valid = FALSE;
        } else
-               widget_unset_error (widget);
+               widget_unset_error (GTK_WIDGET (self->pac_file_button));
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (widget);
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
        valid = eap_method_validate (eap, valid ? error : NULL) && valid;
@@ -88,7 +92,6 @@ static void
 add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
        EAPMethodFAST *method = (EAPMethodFAST *) parent;
-       GtkWidget *widget;
        GtkTreeModel *model;
        GtkTreeIter iter;
        g_autoptr(EAPMethod) eap = NULL;
@@ -97,27 +100,13 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
                g_object_unref (method->size_group);
        method->size_group = g_object_ref (group);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->anon_identity_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->pac_file_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->pac_provision_check));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->inner_auth_label));
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (widget);
-
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (method->inner_auth_combo);
+       gtk_combo_box_get_active_iter (method->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
        eap_method_add_to_size_group (eap, group);
@@ -126,8 +115,8 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 static void
 fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFlags flags)
 {
+       EAPMethodFAST *self = (EAPMethodFAST *) parent;
        NMSetting8021x *s_8021x;
-       GtkWidget *widget;
        const char *text;
        char *filename;
        g_autoptr(EAPMethod) eap = NULL;
@@ -141,25 +130,19 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 
        nm_setting_802_1x_add_eap_method (s_8021x, "fast");
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
-       g_assert (widget);
-       text = gtk_entry_get_text (GTK_ENTRY (widget));
+       text = gtk_entry_get_text (self->anon_identity_entry);
        if (text && strlen (text))
                g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button"));
-       g_assert (widget);
-       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->pac_file_button));
        g_object_set (s_8021x, NM_SETTING_802_1X_PAC_FILE, filename, NULL);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check"));
-       enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+       enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->pac_provision_check));
 
        if (!enabled)
                g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, "0", NULL);
        else {
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo"));
-               pac_provisioning = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
+               pac_provisioning = gtk_combo_box_get_active (self->pac_provision_combo);
 
                switch (pac_provisioning) {
                case 0:  /* Anonymous */
@@ -177,9 +160,8 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
                }
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
 
@@ -189,26 +171,20 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 static void
 inner_auth_combo_changed_cb (EAPMethodFAST *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-       GtkWidget *combo, *vbox;
        g_autoptr(EAPMethod) eap = NULL;
        GList *elt, *children;
        GtkTreeModel *model;
        GtkTreeIter iter;
        GtkWidget *eap_widget;
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       vbox = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_box"));
-       g_assert (vbox);
-
        /* Remove any previous wireless security widgets */
-       children = gtk_container_get_children (GTK_CONTAINER (vbox));
+       children = gtk_container_get_children (GTK_CONTAINER (self->inner_auth_box));
        for (elt = children; elt; elt = g_list_next (elt))
-               gtk_container_remove (GTK_CONTAINER (vbox), GTK_WIDGET (elt->data));
+               gtk_container_remove (GTK_CONTAINER (self->inner_auth_box), GTK_WIDGET (elt->data));
        g_list_free (children);
 
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
 
@@ -218,19 +194,17 @@ inner_auth_combo_changed_cb (EAPMethodFAST *self)
 
        if (self->size_group)
                eap_method_add_to_size_group (eap, self->size_group);
-       gtk_container_add (GTK_CONTAINER (vbox), eap_widget);
+       gtk_container_add (GTK_CONTAINER (self->inner_auth_box), eap_widget);
 
        wireless_security_notify_changed (self->sec_parent);
 }
 
-static GtkWidget *
+static void
 inner_auth_combo_init (EAPMethodFAST *method,
                        NMConnection *connection,
                        NMSetting8021x *s_8021x,
                        gboolean secrets_only)
 {
-       EAPMethod *parent = (EAPMethod *) method;
-       GtkWidget *combo;
        g_autoptr(GtkListStore) auth_model = NULL;
        GtkTreeIter iter;
        g_autoptr(EAPMethodSimple) em_gtc = NULL;
@@ -282,40 +256,29 @@ inner_auth_combo_init (EAPMethodFAST *method,
        if (phase2_auth && !strcasecmp (phase2_auth, "mschapv2"))
                active = 1;
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (combo);
-
-       gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model));
-       gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active);
+       gtk_combo_box_set_model (method->inner_auth_combo, GTK_TREE_MODEL (auth_model));
+       gtk_combo_box_set_active (method->inner_auth_combo, active);
 
-       g_signal_connect_swapped (combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method);
-       return combo;
+       g_signal_connect_swapped (method->inner_auth_combo, "changed", G_CALLBACK 
(inner_auth_combo_changed_cb), method);
 }
 
 static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
+       EAPMethodFAST *self = (EAPMethodFAST *) parent;
        eap_method_phase2_update_secrets_helper (parent,
                                                 connection,
-                                                GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"inner_auth_combo")),
+                                                self->inner_auth_combo,
                                                 I_METHOD_COLUMN);
 }
 
 static void
 pac_toggled_cb (EAPMethodFAST *self)
 {
-       GtkWidget *widget;
-       EAPMethod *parent = (EAPMethod *) self;
        gboolean enabled = FALSE;
-       GtkWidget *provision_combo;
-
-       provision_combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo"));
-       g_return_if_fail (provision_combo);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check"));
-       enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-
-       gtk_widget_set_sensitive (provision_combo, enabled);
+       enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->pac_provision_check));
+       gtk_widget_set_sensitive (GTK_WIDGET (self->pac_provision_combo), enabled);
 
        wireless_security_notify_changed (self->sec_parent);
 }
@@ -334,7 +297,6 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
 {
        EAPMethod *parent;
        EAPMethodFAST *method;
-       GtkWidget *widget;
        GtkFileFilter *filter;
        NMSetting8021x *s_8021x = NULL;
        const char *filename;
@@ -358,13 +320,20 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
        method->sec_parent = ws_parent;
        method->is_editor = is_editor;
 
+       method->anon_identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, 
"anon_identity_entry"));
+       method->anon_identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, 
"anon_identity_label"));
+       method->inner_auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"inner_auth_combo"));
+       method->inner_auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "inner_auth_label"));
+       method->inner_auth_box = GTK_BOX (gtk_builder_get_object (parent->builder, "inner_auth_box"));
+       method->pac_file_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"pac_file_button"));
+       method->pac_file_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "pac_file_label"));
+       method->pac_provision_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"pac_provision_check"));
+       method->pac_provision_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"pac_provision_combo"));
+
        if (connection)
                s_8021x = nm_connection_get_setting_802_1x (connection);
 
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo"));
-       g_assert (widget);
-       gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
+       gtk_combo_box_set_active (method->pac_provision_combo, 0);
        if (s_8021x) {
                const char *fast_prov;
 
@@ -373,67 +342,55 @@ eap_method_fast_new (WirelessSecurity *ws_parent,
                        if (!strcmp (fast_prov, "0"))
                                provisioning_enabled = FALSE;
                        else if (!strcmp (fast_prov, "1"))
-                               gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
+                               gtk_combo_box_set_active (method->pac_provision_combo, 0);
                        else if (!strcmp (fast_prov, "2"))
-                               gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1);
+                               gtk_combo_box_set_active (method->pac_provision_combo, 1);
                        else if (!strcmp (fast_prov, "3"))
-                               gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
+                               gtk_combo_box_set_active (method->pac_provision_combo, 2);
                }
        }
-       gtk_widget_set_sensitive (widget, provisioning_enabled);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       gtk_widget_set_sensitive (GTK_WIDGET (method->pac_provision_combo), provisioning_enabled);
+       g_signal_connect_swapped (method->pac_provision_combo, "changed", G_CALLBACK (changed_cb), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check"));
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), provisioning_enabled);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (pac_toggled_cb), method);
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->pac_provision_check), provisioning_enabled);
+       g_signal_connect_swapped (method->pac_provision_check, "toggled", G_CALLBACK (pac_toggled_cb), 
method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
        if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
-               gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+               gtk_entry_set_text (method->anon_identity_entry, nm_setting_802_1x_get_anonymous_identity 
(s_8021x));
+       g_signal_connect_swapped (method->anon_identity_entry, "changed", G_CALLBACK (changed_cb), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button"));
-       g_assert (widget);
-       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
-       gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
+       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (method->pac_file_button), TRUE);
+       gtk_file_chooser_button_set_title (method->pac_file_button,
                                           _("Choose a PAC file"));
-       g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->pac_file_button, "selection-changed", G_CALLBACK (changed_cb), 
method);
 
        filter = gtk_file_filter_new ();
        gtk_file_filter_add_pattern (filter, "*.pac");
        gtk_file_filter_set_name (filter, _("PAC files (*.pac)"));
-       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
+       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->pac_file_button), filter);
        filter = gtk_file_filter_new ();
        gtk_file_filter_add_pattern (filter, "*");
        gtk_file_filter_set_name (filter, _("All files"));
-       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
+       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->pac_file_button), filter);
 
        if (connection && s_8021x) {
                filename = nm_setting_802_1x_get_pac_file (s_8021x);
                if (filename)
-                       gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
+                       gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (method->pac_file_button), filename);
        }
 
-       widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only);
+       inner_auth_combo_init (method, connection, s_8021x, secrets_only);
        inner_auth_combo_changed_cb (method);
 
        if (secrets_only) {
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_check"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_provision_combo"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "pac_file_button"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-               gtk_widget_hide (widget);
+               gtk_widget_hide (GTK_WIDGET (method->anon_identity_label));
+               gtk_widget_hide (GTK_WIDGET (method->anon_identity_entry));
+               gtk_widget_hide (GTK_WIDGET (method->pac_provision_check));
+               gtk_widget_hide (GTK_WIDGET (method->pac_provision_combo));
+               gtk_widget_hide (GTK_WIDGET (method->pac_file_label));
+               gtk_widget_hide (GTK_WIDGET (method->pac_file_button));
+               gtk_widget_hide (GTK_WIDGET (method->inner_auth_label));
+               gtk_widget_hide (GTK_WIDGET (method->inner_auth_combo));
        }
 
        return method;
diff --git a/panels/network/wireless-security/eap-method-leap.c 
b/panels/network/wireless-security/eap-method-leap.c
index 43ea0e021..2466625a7 100644
--- a/panels/network/wireless-security/eap-method-leap.c
+++ b/panels/network/wireless-security/eap-method-leap.c
@@ -34,24 +34,23 @@
 struct _EAPMethodLEAP {
        EAPMethod parent;
 
+       GtkGrid        *grid;
+       GtkEntry       *password_entry;
+       GtkLabel       *password_label;
+       GtkCheckButton *show_password_check;
+       GtkEntry       *username_entry;
+       GtkLabel       *username_label;
+
        WirelessSecurity *ws_parent;
 
        gboolean editing_connection;
-
-       GtkEntry *username_entry;
-       GtkEntry *password_entry;
-       GtkToggleButton *show_password;
 };
 
 static void
 show_toggled_cb (EAPMethodLEAP *method)
 {
-       EAPMethod *parent = (EAPMethod *) method;
-       GtkWidget *widget;
        gboolean visible;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (method->show_password_check));
        gtk_entry_set_visibility (method->password_entry, visible);
 }
 
@@ -86,15 +85,9 @@ validate (EAPMethod *parent, GError **error)
 static void
 add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
+       EAPMethodLEAP *self = (EAPMethodLEAP *) parent;
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->username_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->password_label));
 }
 
 static void
@@ -103,7 +96,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
        EAPMethodLEAP *method = (EAPMethodLEAP *) parent;
        NMSetting8021x *s_8021x;
        NMSettingSecretFlags secret_flags;
-       GtkWidget *passwd_entry;
 
        s_8021x = nm_connection_get_setting_802_1x (connection);
        g_assert (s_8021x);
@@ -113,25 +105,23 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
        g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (method->username_entry), NULL);
        g_object_set (s_8021x, NM_SETTING_802_1X_PASSWORD, gtk_entry_get_text (method->password_entry), NULL);
 
-       passwd_entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (passwd_entry);
-
        /* Save 802.1X password flags to the connection */
-       secret_flags = nma_utils_menu_to_secret_flags (passwd_entry);
+       secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (method->password_entry));
        nm_setting_set_secret_flags (NM_SETTING (s_8021x), parent->password_flags_name,
                                     secret_flags, NULL);
 
        /* Update secret flags and popup when editing the connection */
        if (method->editing_connection)
-               nma_utils_update_password_storage (passwd_entry, secret_flags,
+               nma_utils_update_password_storage (GTK_WIDGET (method->password_entry), secret_flags,
                                                   NM_SETTING (s_8021x), parent->password_flags_name);
 }
 
 static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
+       EAPMethodLEAP *self = (EAPMethodLEAP *) parent;
        helper_fill_secret_entry (connection,
-                                 GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")),
+                                 self->password_entry,
                                  NM_TYPE_SETTING_802_1X,
                                  (HelperSecretFunc) nm_setting_802_1x_get_password);
 }
@@ -151,7 +141,7 @@ set_userpass_ui (EAPMethodLEAP *method)
        else
                gtk_entry_set_text (method->password_entry, "");
 
-       gtk_toggle_button_set_active (method->show_password, wireless_security_get_show_password 
(method->ws_parent));
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->show_password_check), 
wireless_security_get_show_password (method->ws_parent));
 }
 
 static void
@@ -167,22 +157,18 @@ widgets_unrealized (EAPMethodLEAP *method)
                                        gtk_entry_get_text (method->username_entry),
                                        gtk_entry_get_text (method->password_entry),
                                        (gboolean) -1,
-                                       gtk_toggle_button_get_active (method->show_password));
+                                       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(method->show_password_check)));
 }
 
 static void
 destroy (EAPMethod *parent)
 {
        EAPMethodLEAP *method = (EAPMethodLEAP *) parent;
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
-       g_assert (widget);
-       g_signal_handlers_disconnect_by_data (widget, method);
 
+       g_signal_handlers_disconnect_by_data (method->grid, method);
        g_signal_handlers_disconnect_by_data (method->username_entry, method->ws_parent);
        g_signal_handlers_disconnect_by_data (method->password_entry, method->ws_parent);
-       g_signal_handlers_disconnect_by_data (method->show_password, method);
+       g_signal_handlers_disconnect_by_data (method->show_password_check, method);
 }
 
 static void
@@ -198,7 +184,6 @@ eap_method_leap_new (WirelessSecurity *ws_parent,
 {
        EAPMethodLEAP *method;
        EAPMethod *parent;
-       GtkWidget *widget;
        NMSetting8021x *s_8021x = NULL;
 
        parent = eap_method_init (sizeof (EAPMethodLEAP),
@@ -219,34 +204,30 @@ eap_method_leap_new (WirelessSecurity *ws_parent,
        method->editing_connection = secrets_only ? FALSE : TRUE;
        method->ws_parent = ws_parent;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "realize", G_CALLBACK (widgets_realized), method);
-       g_signal_connect_swapped (widget, "unrealize", G_CALLBACK (widgets_unrealized), method);
+       method->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       method->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry"));
+       method->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label"));
+       method->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"show_password_check"));
+       method->username_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "username_entry"));
+       method->username_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "username_label"));
+
+       g_signal_connect_swapped (method->grid, "realize", G_CALLBACK (widgets_realized), method);
+       g_signal_connect_swapped (method->grid, "unrealize", G_CALLBACK (widgets_unrealized), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry"));
-       g_assert (widget);
-       method->username_entry = GTK_ENTRY (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->username_entry, "changed", G_CALLBACK (changed_cb), method);
 
        if (secrets_only)
-               gtk_widget_set_sensitive (widget, FALSE);
+               gtk_widget_set_sensitive (GTK_WIDGET (method->username_entry), FALSE);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (widget);
-       method->password_entry = GTK_ENTRY (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->password_entry, "changed", G_CALLBACK (changed_cb), method);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        if (connection)
                s_8021x = nm_connection_get_setting_802_1x (connection);
-       nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name,
+       nma_utils_setup_password_storage (GTK_WIDGET (method->password_entry), 0, (NMSetting *) s_8021x, 
parent->password_flags_name,
                                          FALSE, secrets_only);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       g_assert (widget);
-       method->show_password = GTK_TOGGLE_BUTTON (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), method);
+       g_signal_connect_swapped (method->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), 
method);
 
        /* Initialize the UI fields with the security settings from method->ws_parent.
         * This will be done again when the widget gets realized. It must be done here as well,
diff --git a/panels/network/wireless-security/eap-method-peap.c 
b/panels/network/wireless-security/eap-method-peap.c
index 8a4095b76..a202ad3b8 100644
--- a/panels/network/wireless-security/eap-method-peap.c
+++ b/panels/network/wireless-security/eap-method-peap.c
@@ -35,6 +35,17 @@
 struct _EAPMethodPEAP {
        EAPMethod parent;
 
+       GtkEntry             *anon_identity_entry;
+       GtkLabel             *anon_identity_label;
+       GtkFileChooserButton *ca_cert_button;
+       GtkLabel             *ca_cert_label;
+       GtkCheckButton       *ca_cert_not_required_check;
+       GtkBox               *inner_auth_box;
+       GtkComboBox          *inner_auth_combo;
+       GtkLabel             *inner_auth_label;
+       GtkComboBox          *version_combo;
+       GtkLabel             *version_label;
+
        GtkSizeGroup *size_group;
        WirelessSecurity *sec_parent;
        gboolean is_editor;
@@ -52,29 +63,26 @@ destroy (EAPMethod *parent)
 static gboolean
 validate (EAPMethod *parent, GError **error)
 {
-       GtkWidget *widget;
+       EAPMethodPEAP *self = (EAPMethodPEAP *) parent;
        GtkTreeModel *model;
        GtkTreeIter iter;
        g_autoptr(EAPMethod) eap = NULL;
        gboolean valid = FALSE;
        g_autoptr(GError) local_error = NULL;
 
-       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")),
+       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->ca_cert_button),
                                             TYPE_CA_CERT, NULL, NULL, &local_error)) {
                g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-PEAP CA certificate: %s"), 
local_error->message);
                return FALSE;
        }
-       if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check")),
-                                        GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")))) {
+       if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check),
+                                        GTK_FILE_CHOOSER (self->ca_cert_button))) {
                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-PEAP CA certificate: 
no certificate specified"));
                return FALSE;
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (widget);
-
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
        valid = eap_method_validate (eap, error);
@@ -84,10 +92,8 @@ validate (EAPMethod *parent, GError **error)
 static void
 ca_cert_not_required_toggled (EAPMethodPEAP *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-
-       eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check")),
-                                                GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")));
+       eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check),
+                                                GTK_FILE_CHOOSER (self->ca_cert_button));
        wireless_security_notify_changed (self->sec_parent);
 }
 
@@ -95,7 +101,6 @@ static void
 add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
        EAPMethodPEAP *method = (EAPMethodPEAP *) parent;
-       GtkWidget *widget;
        GtkTreeModel *model;
        GtkTreeIter iter;
        g_autoptr(EAPMethod) eap = NULL;
@@ -104,31 +109,14 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
                g_object_unref (method->size_group);
        method->size_group = g_object_ref (group);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_not_required_check));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->anon_identity_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->version_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->inner_auth_label));
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (widget);
-
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (method->inner_auth_combo);
+       gtk_combo_box_get_active_iter (method->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
        eap_method_add_to_size_group (eap, group);
@@ -137,9 +125,9 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 static void
 fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFlags flags)
 {
+       EAPMethodPEAP *self = (EAPMethodPEAP *) parent;
        NMSetting8021x *s_8021x;
        NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-       GtkWidget *widget;
        const char *text;
        g_autofree gchar *filename = NULL;
        g_autoptr(EAPMethod) eap = NULL;
@@ -154,23 +142,18 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 
        nm_setting_802_1x_add_eap_method (s_8021x, "peap");
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
-       g_assert (widget);
-       text = gtk_entry_get_text (GTK_ENTRY (widget));
+       text = gtk_entry_get_text (self->anon_identity_entry);
        if (text && strlen (text))
                g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-       g_assert (widget);
-       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->ca_cert_button));
        if (!nm_setting_802_1x_set_ca_cert (s_8021x, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, 
&error)) {
                g_warning ("Couldn't read CA certificate '%s': %s", filename, error ? error->message : 
"(unknown)");
                ca_cert_error = TRUE;
        }
        eap_method_ca_cert_ignore_set (parent, connection, filename, ca_cert_error);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_combo"));
-       peapver_active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
+       peapver_active = gtk_combo_box_get_active (self->version_combo);
        switch (peapver_active) {
        case 1:  /* PEAP v0 */
                g_object_set (G_OBJECT (s_8021x), NM_SETTING_802_1X_PHASE1_PEAPVER, "0", NULL);
@@ -183,36 +166,30 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
                break;
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
 
        eap_method_fill_connection (eap, connection, flags);
 }
+
 static void
 inner_auth_combo_changed_cb (EAPMethodPEAP *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-       GtkWidget *combo, *box;
        g_autoptr(EAPMethod) eap = NULL;
        GList *elt, *children;
        GtkTreeModel *model;
        GtkTreeIter iter;
        GtkWidget *eap_widget;
 
-       box = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_box"));
-       g_assert (box);
-
        /* Remove any previous wireless security widgets */
-       children = gtk_container_get_children (GTK_CONTAINER (box));
+       children = gtk_container_get_children (GTK_CONTAINER (self->inner_auth_box));
        for (elt = children; elt; elt = g_list_next (elt))
-               gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (elt->data));
+               gtk_container_remove (GTK_CONTAINER (self->inner_auth_box), GTK_WIDGET (elt->data));
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
 
@@ -222,19 +199,17 @@ inner_auth_combo_changed_cb (EAPMethodPEAP *self)
 
        if (self->size_group)
                eap_method_add_to_size_group (eap, self->size_group);
-       gtk_container_add (GTK_CONTAINER (box), eap_widget);
+       gtk_container_add (GTK_CONTAINER (self->inner_auth_box), eap_widget);
 
        wireless_security_notify_changed (self->sec_parent);
 }
 
-static GtkWidget *
+static void
 inner_auth_combo_init (EAPMethodPEAP *method,
                        NMConnection *connection,
                        NMSetting8021x *s_8021x,
                        gboolean secrets_only)
 {
-       EAPMethod *parent = (EAPMethod *) method;
-       GtkWidget *combo;
        g_autoptr(GtkListStore) auth_model = NULL;
        GtkTreeIter iter;
        g_autoptr(EAPMethodSimple) em_mschap_v2 = NULL;
@@ -301,22 +276,19 @@ inner_auth_combo_init (EAPMethodPEAP *method,
        if (phase2_auth && !strcasecmp (phase2_auth, "gtc"))
                active = 2;
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (combo);
-
-       gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model));
-       gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active);
+       gtk_combo_box_set_model (method->inner_auth_combo, GTK_TREE_MODEL (auth_model));
+       gtk_combo_box_set_active (method->inner_auth_combo, active);
 
-       g_signal_connect_swapped (combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method);
-       return combo;
+       g_signal_connect_swapped (method->inner_auth_combo, "changed", G_CALLBACK 
(inner_auth_combo_changed_cb), method);
 }
 
 static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
+       EAPMethodPEAP *self = (EAPMethodPEAP *) parent;
        eap_method_phase2_update_secrets_helper (parent,
                                                 connection,
-                                                GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"inner_auth_combo")),
+                                                self->inner_auth_combo,
                                                 I_METHOD_COLUMN);
 }
 
@@ -334,7 +306,6 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
 {
        EAPMethod *parent;
        EAPMethodPEAP *method;
-       GtkWidget *widget, *widget_ca_not_required_checkbox;
        GtkFileFilter *filter;
        NMSetting8021x *s_8021x = NULL;
        const char *filename;
@@ -357,39 +328,43 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
        method->sec_parent = ws_parent;
        method->is_editor = is_editor;
 
+       method->anon_identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, 
"anon_identity_entry"));
+       method->anon_identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, 
"anon_identity_label"));
+       method->ca_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_button"));
+       method->ca_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "ca_cert_label"));
+       method->ca_cert_not_required_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check"));
+       method->inner_auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"inner_auth_combo"));
+       method->inner_auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "inner_auth_label"));
+       method->inner_auth_box = GTK_BOX (gtk_builder_get_object (parent->builder, "inner_auth_box"));
+       method->version_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "version_combo"));
+       method->version_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "version_label"));
+
        if (connection)
                s_8021x = nm_connection_get_setting_802_1x (connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method);
-       widget_ca_not_required_checkbox = widget;
+       g_signal_connect_swapped (method->ca_cert_not_required_check, "toggled", G_CALLBACK 
(ca_cert_not_required_toggled), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-       g_assert (widget);
-       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
-       gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
+       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (method->ca_cert_button), TRUE);
+       gtk_file_chooser_button_set_title (method->ca_cert_button,
                                           _("Choose a Certificate Authority certificate"));
-       g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->ca_cert_button, "selection-changed", G_CALLBACK (changed_cb), 
method);
        filter = eap_method_default_file_chooser_filter_new (FALSE);
-       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
+       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->ca_cert_button), filter);
        if (connection && s_8021x) {
                filename = NULL;
                if (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH) {
                        filename = nm_setting_802_1x_get_ca_cert_path (s_8021x);
                        if (filename)
-                               gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
+                               gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (method->ca_cert_button), 
filename);
                }
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget_ca_not_required_checkbox),
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->ca_cert_not_required_check),
                                              !filename && eap_method_ca_cert_ignore_get (parent, 
connection));
        }
 
-       widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only);
+       inner_auth_combo_init (method, connection, s_8021x, secrets_only);
        inner_auth_combo_changed_cb (method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_combo"));
-       g_assert (widget);
-       gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
+       gtk_combo_box_set_active (method->version_combo, 0);
        if (s_8021x) {
                const char *peapver;
 
@@ -397,37 +372,27 @@ eap_method_peap_new (WirelessSecurity *ws_parent,
                if (peapver) {
                        /* Index 0 is "Automatic" */
                        if (!strcmp (peapver, "0"))
-                               gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 1);
+                               gtk_combo_box_set_active (method->version_combo, 1);
                        else if (!strcmp (peapver, "1"))
-                               gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 2);
+                               gtk_combo_box_set_active (method->version_combo, 2);
                }
        }
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->version_combo, "changed", G_CALLBACK (changed_cb), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
        if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
-               gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+               gtk_entry_set_text (method->anon_identity_entry, nm_setting_802_1x_get_anonymous_identity 
(s_8021x));
+       g_signal_connect_swapped (method->anon_identity_entry, "changed", G_CALLBACK (changed_cb), method);
 
        if (secrets_only) {
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "version_combo"));
-               gtk_widget_hide (widget);
+               gtk_widget_hide (GTK_WIDGET (method->anon_identity_label));
+               gtk_widget_hide (GTK_WIDGET (method->anon_identity_entry));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_label));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_button));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_not_required_check));
+               gtk_widget_hide (GTK_WIDGET (method->inner_auth_label));
+               gtk_widget_hide (GTK_WIDGET (method->inner_auth_combo));
+               gtk_widget_hide (GTK_WIDGET (method->version_label));
+               gtk_widget_hide (GTK_WIDGET (method->version_combo));
        }
 
        return method;
diff --git a/panels/network/wireless-security/eap-method-simple.c 
b/panels/network/wireless-security/eap-method-simple.c
index 434d2f6da..8c4ca4edc 100644
--- a/panels/network/wireless-security/eap-method-simple.c
+++ b/panels/network/wireless-security/eap-method-simple.c
@@ -34,26 +34,27 @@
 struct _EAPMethodSimple {
        EAPMethod parent;
 
+       GtkGrid         *grid;
+       GtkEntry        *password_entry;
+       GtkLabel        *password_label;
+       GtkToggleButton *show_password_check;
+       GtkEntry        *username_entry;
+       GtkLabel        *username_label;
+
        WirelessSecurity *ws_parent;
 
        EAPMethodSimpleType type;
        EAPMethodSimpleFlags flags;
 
-       GtkEntry *username_entry;
-       GtkEntry *password_entry;
-       GtkToggleButton *show_password;
        guint idle_func_id;
 };
 
 static void
 show_toggled_cb (EAPMethodSimple *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-       GtkWidget *widget;
        gboolean visible;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check));
        gtk_entry_set_visibility (self->password_entry, visible);
 }
 
@@ -100,15 +101,9 @@ validate (EAPMethod *parent, GError **error)
 static void
 add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
+       EAPMethodSimple *self = (EAPMethodSimple *) parent;
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->username_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->password_label));
 }
 
 typedef struct {
@@ -180,10 +175,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 
        /* Update secret flags and popup when editing the connection */
        if (!(method->flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY)) {
-               GtkWidget *passwd_entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, 
"password_entry"));
-               g_assert (passwd_entry);
-
-               nma_utils_update_password_storage (passwd_entry, flags,
+               nma_utils_update_password_storage (GTK_WIDGET (method->password_entry), flags,
                                                   NM_SETTING (s_8021x), parent->password_flags_name);
        }
 }
@@ -191,8 +183,9 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
+       EAPMethodSimple *self = (EAPMethodSimple *) parent;
        helper_fill_secret_entry (connection,
-                                 GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")),
+                                 self->password_entry,
                                  NM_TYPE_SETTING_802_1X,
                                  (HelperSecretFunc) nm_setting_802_1x_get_password);
 }
@@ -216,10 +209,10 @@ password_storage_changed (EAPMethodSimple *method)
        if (always_ask && !secrets_only) {
                /* we always clear this button and do not restore it
                 * (because we want to hide the password). */
-               gtk_toggle_button_set_active (method->show_password, FALSE);
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->show_password_check), FALSE);
        }
 
-       gtk_widget_set_sensitive (GTK_WIDGET (method->show_password),
+       gtk_widget_set_sensitive (GTK_WIDGET (method->show_password_check),
                                  !always_ask || secrets_only);
 
        if (!method->idle_func_id)
@@ -241,7 +234,7 @@ set_userpass_ui (EAPMethodSimple *method)
        else
                gtk_entry_set_text (method->password_entry, "");
 
-       gtk_toggle_button_set_active (method->show_password, wireless_security_get_show_password 
(method->ws_parent));
+       gtk_toggle_button_set_active (method->show_password_check, wireless_security_get_show_password 
(method->ws_parent));
 }
 
 static void
@@ -257,23 +250,19 @@ widgets_unrealized (EAPMethodSimple *method)
                                        gtk_entry_get_text (method->username_entry),
                                        gtk_entry_get_text (method->password_entry),
                                        always_ask_selected (method->password_entry),
-                                       gtk_toggle_button_get_active (method->show_password));
+                                       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(method->show_password_check)));
 }
 
 static void
 destroy (EAPMethod *parent)
 {
        EAPMethodSimple *method = (EAPMethodSimple *) parent;
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
-       g_assert (widget);
-       g_signal_handlers_disconnect_by_data (widget, method);
 
+       g_signal_handlers_disconnect_by_data (method->grid, method);
        g_signal_handlers_disconnect_by_data (method->username_entry, method->ws_parent);
        g_signal_handlers_disconnect_by_data (method->password_entry, method->ws_parent);
        g_signal_handlers_disconnect_by_data (method->password_entry, method);
-       g_signal_handlers_disconnect_by_data (method->show_password, method);
+       g_signal_handlers_disconnect_by_data (method->show_password_check, method);
 
        nm_clear_g_source (&method->idle_func_id);
 }
@@ -292,7 +281,6 @@ eap_method_simple_new (WirelessSecurity *ws_parent,
 {
        EAPMethod *parent;
        EAPMethodSimple *method;
-       GtkWidget *widget;
        NMSetting8021x *s_8021x = NULL;
 
        parent = eap_method_init (sizeof (EAPMethodSimple),
@@ -315,36 +303,32 @@ eap_method_simple_new (WirelessSecurity *ws_parent,
        method->type = type;
        g_assert (type < EAP_METHOD_SIMPLE_TYPE_LAST);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "realize", G_CALLBACK (widgets_realized), method);
-       g_signal_connect_swapped (widget, "unrealize", G_CALLBACK (widgets_unrealized), method);
+       method->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       method->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label"));
+       method->username_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "username_label"));
+       method->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry"));
+       method->show_password_check = GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"show_password_check"));
+       method->username_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "username_entry"));
+
+       g_signal_connect_swapped (method->grid, "realize", G_CALLBACK (widgets_realized), method);
+       g_signal_connect_swapped (method->grid, "unrealize", G_CALLBACK (widgets_unrealized), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry"));
-       g_assert (widget);
-       method->username_entry = GTK_ENTRY (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->username_entry, "changed", G_CALLBACK (changed_cb), method);
 
        if (method->flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY)
-               gtk_widget_set_sensitive (widget, FALSE);
+               gtk_widget_set_sensitive (GTK_WIDGET (method->username_entry), FALSE);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (widget);
-       method->password_entry = GTK_ENTRY (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->password_entry, "changed", G_CALLBACK (changed_cb), method);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        if (connection)
                s_8021x = nm_connection_get_setting_802_1x (connection);
-       nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name,
+       nma_utils_setup_password_storage (GTK_WIDGET (method->password_entry), 0, (NMSetting *) s_8021x, 
parent->password_flags_name,
                                          FALSE, flags & EAP_METHOD_SIMPLE_FLAG_SECRETS_ONLY);
 
        g_signal_connect_swapped (method->password_entry, "notify::secondary-icon-name", G_CALLBACK 
(password_storage_changed), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       g_assert (widget);
-       method->show_password = GTK_TOGGLE_BUTTON (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), method);
+       g_signal_connect_swapped (method->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), 
method);
 
        /* Initialize the UI fields with the security settings from method->ws_parent.
         * This will be done again when the widget gets realized. It must be done here as well,
diff --git a/panels/network/wireless-security/eap-method-tls.c 
b/panels/network/wireless-security/eap-method-tls.c
index 5d261ddb8..3e722b844 100644
--- a/panels/network/wireless-security/eap-method-tls.c
+++ b/panels/network/wireless-security/eap-method-tls.c
@@ -34,6 +34,19 @@
 struct _EAPMethodTLS {
        EAPMethod parent;
 
+       GtkFileChooserButton *ca_cert_button;
+       GtkLabel             *ca_cert_label;
+       GtkCheckButton       *ca_cert_not_required_check;
+       GtkEntry             *identity_entry;
+       GtkLabel             *identity_label;
+       GtkFileChooserButton *private_key_button;
+       GtkLabel             *private_key_label;
+       GtkEntry             *private_key_password_entry;
+       GtkLabel             *private_key_password_label;
+       GtkCheckButton       *show_password_check;
+       GtkFileChooserButton *user_cert_button;
+       GtkLabel             *user_cert_label;
+
        WirelessSecurity *sec_parent;
        gboolean editing_connection;
 };
@@ -42,60 +55,51 @@ struct _EAPMethodTLS {
 static void
 show_toggled_cb (EAPMethodTLS *self)
 {
-       EAPMethod *method = (EAPMethod *) self;
-       GtkWidget *widget;
        gboolean visible;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "show_password_check"));
-       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-
-       widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "private_key_password_entry"));
-       gtk_entry_set_visibility (GTK_ENTRY (widget), visible);
+       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check));
+       gtk_entry_set_visibility (self->private_key_password_entry, visible);
 }
 
 static gboolean
 validate (EAPMethod *parent, GError **error)
 {
+       EAPMethodTLS *self = (EAPMethodTLS *) parent;
        NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-       GtkWidget *widget;
        const char *password, *identity;
        g_autoptr(GError) ca_cert_error = NULL;
        g_autoptr(GError) private_key_error = NULL;
        g_autoptr(GError) user_cert_error = NULL;
        gboolean ret = TRUE;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry"));
-       g_assert (widget);
-       identity = gtk_entry_get_text (GTK_ENTRY (widget));
+       identity = gtk_entry_get_text (self->identity_entry);
        if (!identity || !strlen (identity)) {
-               widget_set_error (widget);
+               widget_set_error (GTK_WIDGET (self->identity_entry));
                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing EAP-TLS identity"));
                ret = FALSE;
        } else {
-               widget_unset_error (widget);
+               widget_unset_error (GTK_WIDGET (self->identity_entry));
        }
 
-       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")),
+       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->ca_cert_button),
                                             TYPE_CA_CERT, NULL, NULL, &ca_cert_error)) {
-               widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")));
+               widget_set_error (GTK_WIDGET (self->ca_cert_button));
                if (ret) {
                        g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS CA certificate: 
%s"), ca_cert_error->message);
                        ret = FALSE;
                }
-       } else if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check")),
-                                               GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")))) {
-               widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button")));
+       } else if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check),
+                                               GTK_FILE_CHOOSER (self->ca_cert_button))) {
+               widget_set_error (GTK_WIDGET (self->ca_cert_button));
                if (ret) {
                        g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS CA 
certificate: no certificate specified"));
                        ret = FALSE;
                }
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry"));
-       g_assert (widget);
-       password = gtk_entry_get_text (GTK_ENTRY (widget));
+       password = gtk_entry_get_text (self->private_key_password_entry);
 
-       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"private_key_button")),
+       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->private_key_button),
                                             TYPE_PRIVATE_KEY,
                                             password,
                                             &format,
@@ -104,17 +108,17 @@ validate (EAPMethod *parent, GError **error)
                        g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS private-key: 
%s"), private_key_error->message);
                        ret = FALSE;
                }
-               widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, 
"private_key_button")));
+               widget_set_error (GTK_WIDGET (self->private_key_button));
        }
 
        if (format != NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
-               if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object 
(parent->builder, "user_cert_button")),
+               if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->user_cert_button),
                                                     TYPE_CLIENT_CERT, NULL, NULL, &user_cert_error)) {
                        if (ret) {
                                g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TLS 
user-certificate: %s"), user_cert_error->message);
                                ret = FALSE;
                        }
-                       widget_set_error (GTK_WIDGET (gtk_builder_get_object (parent->builder, 
"user_cert_button")));
+                       widget_set_error (GTK_WIDGET (self->user_cert_button));
                }
        }
 
@@ -124,41 +128,22 @@ validate (EAPMethod *parent, GError **error)
 static void
 ca_cert_not_required_toggled (EAPMethodTLS *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-
-       eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check")),
-                                                GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")));
+       eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check),
+                                                GTK_FILE_CHOOSER (self->ca_cert_button));
        wireless_security_notify_changed (self->sec_parent);
 }
 
 static void
 add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
+       EAPMethodTLS *self = (EAPMethodTLS *) parent;
+
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->ca_cert_not_required_check));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->identity_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->user_cert_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->ca_cert_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->private_key_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->private_key_password_label));
 }
 
 static void
@@ -168,7 +153,6 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
        NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
        NMSetting8021x *s_8021x;
        NMSettingSecretFlags secret_flags;
-       GtkWidget *widget, *passwd_entry;
        g_autofree gchar *ca_filename = NULL;
        g_autofree gchar *pk_filename = NULL;
        const char *password = NULL;
@@ -182,20 +166,12 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
        else
                nm_setting_802_1x_add_eap_method (s_8021x, "tls");
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry"));
-       g_assert (widget);
-       g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
+       g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (method->identity_entry), NULL);
 
        /* TLS private key */
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry"));
-       g_assert (widget);
-       password = gtk_entry_get_text (GTK_ENTRY (widget));
-       g_assert (password);
-       passwd_entry = widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button"));
-       g_assert (widget);
-       pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+       password = gtk_entry_get_text (method->private_key_password_entry);
+
+       pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->private_key_button));
        g_assert (pk_filename);
 
        if (parent->phase2) {
@@ -209,13 +185,13 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
        }
 
        /* Save 802.1X password flags to the connection */
-       secret_flags = nma_utils_menu_to_secret_flags (passwd_entry);
+       secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (method->private_key_password_entry));
        nm_setting_set_secret_flags (NM_SETTING (s_8021x), parent->password_flags_name,
                                     secret_flags, NULL);
 
        /* Update secret flags and popup when editing the connection */
        if (method->editing_connection) {
-               nma_utils_update_password_storage (passwd_entry, secret_flags,
+               nma_utils_update_password_storage (GTK_WIDGET (method->private_key_password_entry), 
secret_flags,
                                                   NM_SETTING (s_8021x), parent->password_flags_name);
        }
 
@@ -226,9 +202,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
                /* If the key is pkcs#12 nm_setting_802_1x_set_private_key() already
                 * set the client certificate for us.
                 */
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button"));
-               g_assert (widget);
-               cc_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+               cc_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->user_cert_button));
                g_assert (cc_filename);
 
                format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
@@ -244,9 +218,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
        }
 
        /* TLS CA certificate */
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-       g_assert (widget);
-       ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+       ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->ca_cert_button));
 
        format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
        if (parent->phase2) {
@@ -268,25 +240,22 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 static void
 private_key_picker_helper (EAPMethod *parent, const char *filename, gboolean changed)
 {
+       EAPMethodTLS *self = (EAPMethodTLS *) parent;
        g_autoptr(NMSetting8021x) setting = NULL;
        NMSetting8021xCKFormat cert_format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
        const char *password;
-       GtkWidget *widget;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry"));
-       g_assert (widget);
-       password = gtk_entry_get_text (GTK_ENTRY (widget));
+       password = gtk_entry_get_text (self->private_key_password_entry);
 
        setting = (NMSetting8021x *) nm_setting_802_1x_new ();
        nm_setting_802_1x_set_private_key (setting, filename, password, NM_SETTING_802_1X_CK_SCHEME_PATH, 
&cert_format, NULL);
 
        /* With PKCS#12, the client cert must be the same as the private key */
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button"));
        if (cert_format == NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
-               gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (widget));
-               gtk_widget_set_sensitive (widget, FALSE);
+               gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (self->user_cert_button));
+               gtk_widget_set_sensitive (GTK_WIDGET (self->user_cert_button), FALSE);
        } else if (changed)
-               gtk_widget_set_sensitive (widget, TRUE);
+               gtk_widget_set_sensitive (GTK_WIDGET (self->user_cert_button), TRUE);
 
        /* Warn the user if the private key is unencrypted */
        if (!eap_method_is_encrypted_private_key (filename)) {
@@ -394,12 +363,12 @@ setup_filepicker (GtkFileChooserButton *button,
 static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
+       EAPMethodTLS *self = (EAPMethodTLS *) parent;
        NMSetting8021x *s_8021x;
        HelperSecretFunc password_func;
        SchemeFunc scheme_func;
        PathFunc path_func;
        const char *filename;
-       GtkWidget *widget;
 
        if (parent->phase2) {
                password_func = (HelperSecretFunc) nm_setting_802_1x_get_phase2_private_key_password;
@@ -412,7 +381,7 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
        }
 
        helper_fill_secret_entry (connection,
-                                 GTK_ENTRY (gtk_builder_get_object (parent->builder, 
"private_key_password_entry")),
+                                 self->private_key_password_entry,
                                  NM_TYPE_SETTING_802_1X,
                                  password_func);
 
@@ -420,11 +389,8 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
        s_8021x = nm_connection_get_setting_802_1x (connection);
        if (s_8021x && (scheme_func (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH)) {
                filename = path_func (s_8021x);
-               if (filename) {
-                       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button"));
-                       g_assert (widget);
-                       gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
-               }
+               if (filename)
+                       gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (self->private_key_button), filename);
        }
 }
 
@@ -436,7 +402,6 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
 {
        EAPMethodTLS *method;
        EAPMethod *parent;
-       GtkWidget *widget;
        NMSetting8021x *s_8021x = NULL;
        gboolean ca_not_required = FALSE;
 
@@ -460,78 +425,72 @@ eap_method_tls_new (WirelessSecurity *ws_parent,
        method->sec_parent = ws_parent;
        method->editing_connection = secrets_only ? FALSE : TRUE;
 
+       method->ca_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_button"));
+       method->ca_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "ca_cert_label"));
+       method->ca_cert_not_required_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check"));
+       method->identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "identity_entry"));
+       method->identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "identity_label"));
+       method->private_key_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"private_key_button"));
+       method->private_key_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "private_key_label"));
+       method->private_key_password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, 
"private_key_password_entry"));
+       method->private_key_password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, 
"private_key_password_label"));
+       method->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"show_password_check"));
+       method->user_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"user_cert_button"));
+       method->user_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "user_cert_label"));
+
        if (connection)
                s_8021x = nm_connection_get_setting_802_1x (connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method);
+       g_signal_connect_swapped (method->ca_cert_not_required_check, "toggled", G_CALLBACK 
(ca_cert_not_required_toggled), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->identity_entry, "changed", G_CALLBACK (changed_cb), method);
        if (s_8021x && nm_setting_802_1x_get_identity (s_8021x))
-               gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x));
+               gtk_entry_set_text (method->identity_entry, nm_setting_802_1x_get_identity (s_8021x));
 
-       setup_filepicker (GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"user_cert_button")),
+       setup_filepicker (method->user_cert_button,
                          _("Choose your personal certificate"),
                          ws_parent, parent, s_8021x,
                          phase2 ? nm_setting_802_1x_get_phase2_client_cert_scheme : 
nm_setting_802_1x_get_client_cert_scheme,
                          phase2 ? nm_setting_802_1x_get_phase2_client_cert_path : 
nm_setting_802_1x_get_client_cert_path,
                          FALSE, TRUE);
-       setup_filepicker (GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_button")),
+       setup_filepicker (method->ca_cert_button,
                          _("Choose a Certificate Authority certificate"),
                          ws_parent, parent, s_8021x,
                          phase2 ? nm_setting_802_1x_get_phase2_ca_cert_scheme : 
nm_setting_802_1x_get_ca_cert_scheme,
                          phase2 ? nm_setting_802_1x_get_phase2_ca_cert_path : 
nm_setting_802_1x_get_ca_cert_path,
                          FALSE, FALSE);
-       setup_filepicker (GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"private_key_button")),
+       setup_filepicker (method->private_key_button,
                          _("Choose your private key"),
                          ws_parent, parent, s_8021x,
                          phase2 ? nm_setting_802_1x_get_phase2_private_key_scheme : 
nm_setting_802_1x_get_private_key_scheme,
                          phase2 ? nm_setting_802_1x_get_phase2_private_key_path : 
nm_setting_802_1x_get_private_key_path,
                          TRUE, FALSE);
 
-       if (connection && eap_method_ca_cert_ignore_get (parent, connection)) {
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-               ca_not_required = !gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
-       }
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), ca_not_required);
+       if (connection && eap_method_ca_cert_ignore_get (parent, connection))
+               ca_not_required = !gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (method->ca_cert_button));
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->ca_cert_not_required_check), 
ca_not_required);
 
        /* Fill secrets, if any */
        if (connection)
                update_secrets (parent, connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_password_entry"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->private_key_password_entry, "changed", G_CALLBACK (changed_cb), 
method);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
-       nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_8021x, parent->password_flags_name,
+       nma_utils_setup_password_storage (GTK_WIDGET (method->private_key_password_entry), 0, (NMSetting *) 
s_8021x, parent->password_flags_name,
                                          FALSE, secrets_only);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), method);
+       g_signal_connect_swapped (method->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), 
method);
 
        if (secrets_only) {
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "identity_entry"));
-               gtk_widget_set_sensitive (widget, FALSE);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "user_cert_button"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "private_key_button"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-               gtk_widget_hide (widget);
+               gtk_widget_set_sensitive (GTK_WIDGET (method->identity_entry), FALSE);
+               gtk_widget_hide (GTK_WIDGET (method->user_cert_label));
+               gtk_widget_hide (GTK_WIDGET (method->user_cert_button));
+               gtk_widget_hide (GTK_WIDGET (method->private_key_label));
+               gtk_widget_hide (GTK_WIDGET (method->private_key_button));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_label));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_button));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_not_required_check));
        }
 
        return method;
diff --git a/panels/network/wireless-security/eap-method-ttls.c 
b/panels/network/wireless-security/eap-method-ttls.c
index 81ebc1553..c5ce84378 100644
--- a/panels/network/wireless-security/eap-method-ttls.c
+++ b/panels/network/wireless-security/eap-method-ttls.c
@@ -35,6 +35,17 @@
 struct _EAPMethodTTLS {
        EAPMethod parent;
 
+       GtkEntry             *anon_identity_entry;
+       GtkLabel             *anon_identity_label;
+       GtkFileChooserButton *ca_cert_button;
+       GtkLabel             *ca_cert_label;
+       GtkCheckButton       *ca_cert_not_required_check;
+       GtkEntry             *domain_match_entry;
+       GtkLabel             *domain_match_label;
+       GtkComboBox          *inner_auth_combo;
+       GtkLabel             *inner_auth_label;
+       GtkBox               *inner_auth_box;
+
        GtkSizeGroup *size_group;
        WirelessSecurity *sec_parent;
        gboolean is_editor;
@@ -52,29 +63,26 @@ destroy (EAPMethod *parent)
 static gboolean
 validate (EAPMethod *parent, GError **error)
 {
-       GtkWidget *widget;
+       EAPMethodTTLS *self = (EAPMethodTTLS *) parent;
        GtkTreeModel *model;
        GtkTreeIter iter;
        g_autoptr(EAPMethod) eap = NULL;
        gboolean valid = FALSE;
        g_autoptr(GError) local_error = NULL;
 
-       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")),
+       if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->ca_cert_button),
                                             TYPE_CA_CERT, NULL, NULL, &local_error)) {
                g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TTLS CA certificate: %s"), 
local_error->message);
                return FALSE;
        }
-       if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check")),
-                                        GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")))) {
+       if (eap_method_ca_cert_required (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check),
+                                        GTK_FILE_CHOOSER (self->ca_cert_button))) {
                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid EAP-TTLS CA certificate: 
no certificate specified"));
                return FALSE;
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (widget);
-
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
        valid = eap_method_validate (eap, error);
@@ -84,9 +92,8 @@ validate (EAPMethod *parent, GError **error)
 static void
 ca_cert_not_required_toggled (EAPMethodTTLS *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-       eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check")),
-                                                GTK_FILE_CHOOSER (gtk_builder_get_object (parent->builder, 
"ca_cert_button")));
+       eap_method_ca_cert_not_required_toggled (GTK_TOGGLE_BUTTON (self->ca_cert_not_required_check),
+                                                GTK_FILE_CHOOSER (self->ca_cert_button));
        wireless_security_notify_changed (self->sec_parent);
 }
 
@@ -94,7 +101,6 @@ static void
 add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
        EAPMethodTTLS *method = (EAPMethodTTLS *) parent;
-       GtkWidget *widget;
        GtkTreeModel *model;
        GtkTreeIter iter;
        g_autoptr(EAPMethod) eap = NULL;
@@ -103,31 +109,14 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
                g_object_unref (method->size_group);
        method->size_group = g_object_ref (group);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label"));
-       g_assert (widget);
-       gtk_size_group_add_widget (group, widget);
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_not_required_check));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->anon_identity_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->domain_match_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->ca_cert_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (method->inner_auth_label));
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (widget);
-
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (method->inner_auth_combo);
+       gtk_combo_box_get_active_iter (method->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
        eap_method_add_to_size_group (eap, group);
@@ -136,9 +125,9 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 static void
 fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFlags flags)
 {
+       EAPMethodTTLS *self = (EAPMethodTTLS *) parent;
        NMSetting8021x *s_8021x;
        NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
-       GtkWidget *widget;
        const char *text;
        g_autofree gchar *filename = NULL;
        g_autoptr(EAPMethod) eap = NULL;
@@ -152,30 +141,23 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 
        nm_setting_802_1x_add_eap_method (s_8021x, "ttls");
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
-       g_assert (widget);
-       text = gtk_entry_get_text (GTK_ENTRY (widget));
+       text = gtk_entry_get_text (self->anon_identity_entry);
        if (text && strlen (text))
                g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_entry"));
-       g_assert (widget);
-       text = gtk_entry_get_text (GTK_ENTRY (widget));
+       text = gtk_entry_get_text (self->domain_match_entry);
        if (text && strlen (text))
                g_object_set (s_8021x, NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, text, NULL);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-       g_assert (widget);
-       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->ca_cert_button));
        if (!nm_setting_802_1x_set_ca_cert (s_8021x, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, 
&error)) {
                g_warning ("Couldn't read CA certificate '%s': %s", filename, error ? error->message : 
"(unknown)");
                ca_cert_error = TRUE;
        }
        eap_method_ca_cert_ignore_set (parent, connection, filename, ca_cert_error);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
 
@@ -185,26 +167,20 @@ fill_connection (EAPMethod *parent, NMConnection *connection, NMSettingSecretFla
 static void
 inner_auth_combo_changed_cb (EAPMethodTTLS *self)
 {
-       EAPMethod *parent = (EAPMethod *) self;
-       GtkWidget *combo, *box;
        g_autoptr(EAPMethod) eap = NULL;
        GList *elt, *children;
        GtkTreeModel *model;
        GtkTreeIter iter;
        GtkWidget *eap_widget;
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       box = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_box"));
-       g_assert (box);
-
        /* Remove any previous wireless security widgets */
-       children = gtk_container_get_children (GTK_CONTAINER (box));
+       children = gtk_container_get_children (GTK_CONTAINER (self->inner_auth_box));
        for (elt = children; elt; elt = g_list_next (elt))
-               gtk_container_remove (GTK_CONTAINER (box), GTK_WIDGET (elt->data));
+               gtk_container_remove (GTK_CONTAINER (self->inner_auth_box), GTK_WIDGET (elt->data));
        g_list_free (children);
 
-       model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo));
-       gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter);
+       model = gtk_combo_box_get_model (self->inner_auth_combo);
+       gtk_combo_box_get_active_iter (self->inner_auth_combo, &iter);
        gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
        g_assert (eap);
 
@@ -214,19 +190,17 @@ inner_auth_combo_changed_cb (EAPMethodTTLS *self)
 
        if (self->size_group)
                eap_method_add_to_size_group (eap, self->size_group);
-       gtk_container_add (GTK_CONTAINER (box), eap_widget);
+       gtk_container_add (GTK_CONTAINER (self->inner_auth_box), eap_widget);
 
        wireless_security_notify_changed (self->sec_parent);
 }
 
-static GtkWidget *
+static void
 inner_auth_combo_init (EAPMethodTTLS *method,
                        NMConnection *connection,
                        NMSetting8021x *s_8021x,
                        gboolean secrets_only)
 {
-       EAPMethod *parent = (EAPMethod *) method;
-       GtkWidget *combo;
        g_autoptr(GtkListStore) auth_model = NULL;
        GtkTreeIter iter;
        g_autoptr(EAPMethodSimple) em_pap = NULL;
@@ -355,22 +329,19 @@ inner_auth_combo_init (EAPMethodTTLS *method,
        if (phase2_auth && !strcasecmp (phase2_auth, "gtc"))
                active = 6;
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-       g_assert (combo);
+       gtk_combo_box_set_model (method->inner_auth_combo, GTK_TREE_MODEL (auth_model));
+       gtk_combo_box_set_active (method->inner_auth_combo, active);
 
-       gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model));
-       gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active);
-
-       g_signal_connect_swapped (combo, "changed", G_CALLBACK (inner_auth_combo_changed_cb), method);
-       return combo;
+       g_signal_connect_swapped (method->inner_auth_combo, "changed", G_CALLBACK 
(inner_auth_combo_changed_cb), method);
 }
 
 static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
+       EAPMethodTTLS *self = (EAPMethodTTLS *) parent;
        eap_method_phase2_update_secrets_helper (parent,
                                                 connection,
-                                                GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"inner_auth_combo")),
+                                                self->inner_auth_combo,
                                                 I_METHOD_COLUMN);
 }
 
@@ -388,7 +359,6 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
 {
        EAPMethod *parent;
        EAPMethodTTLS *method;
-       GtkWidget *widget, *widget_ca_not_required_checkbox;
        GtkFileFilter *filter;
        NMSetting8021x *s_8021x = NULL;
        const char *filename;
@@ -411,64 +381,59 @@ eap_method_ttls_new (WirelessSecurity *ws_parent,
        method->sec_parent = ws_parent;
        method->is_editor = is_editor;
 
+       method->anon_identity_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, 
"anon_identity_entry"));
+       method->anon_identity_label = GTK_LABEL (gtk_builder_get_object (parent->builder, 
"anon_identity_label"));
+       method->ca_cert_button = GTK_FILE_CHOOSER_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_button"));
+       method->ca_cert_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "ca_cert_label"));
+       method->ca_cert_not_required_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"ca_cert_not_required_check"));
+       method->domain_match_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, 
"domain_match_entry"));
+       method->domain_match_label = GTK_LABEL (gtk_builder_get_object (parent->builder, 
"domain_match_label"));
+       method->inner_auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"inner_auth_combo"));
+       method->inner_auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "inner_auth_label"));
+       method->inner_auth_box = GTK_BOX (gtk_builder_get_object (parent->builder, "inner_auth_box"));
+
        if (connection)
                s_8021x = nm_connection_get_setting_802_1x (connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (ca_cert_not_required_toggled), method);
-       widget_ca_not_required_checkbox = widget;
+       g_signal_connect_swapped (method->ca_cert_not_required_check, "toggled", G_CALLBACK 
(ca_cert_not_required_toggled), method);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-       g_assert (widget);
-       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
-       gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
+       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (method->ca_cert_button), TRUE);
+       gtk_file_chooser_button_set_title (method->ca_cert_button,
                                           _("Choose a Certificate Authority certificate"));
-       g_signal_connect_swapped (widget, "selection-changed", G_CALLBACK (changed_cb), method);
+       g_signal_connect_swapped (method->ca_cert_button, "selection-changed", G_CALLBACK (changed_cb), 
method);
        filter = eap_method_default_file_chooser_filter_new (FALSE);
-       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter);
+       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (method->ca_cert_button), filter);
        if (connection && s_8021x) {
                filename = NULL;
                if (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH) {
                        filename = nm_setting_802_1x_get_ca_cert_path (s_8021x);
                        if (filename)
-                               gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
+                               gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (method->ca_cert_button), 
filename);
                }
-               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget_ca_not_required_checkbox),
+               gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (method->ca_cert_not_required_check),
                                              !filename && eap_method_ca_cert_ignore_get (parent, 
connection));
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
        if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
-               gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_entry"));
+               gtk_entry_set_text (method->anon_identity_entry, nm_setting_802_1x_get_anonymous_identity 
(s_8021x));
+       g_signal_connect_swapped (method->anon_identity_entry, "changed", G_CALLBACK (changed_cb), method);
        if (s_8021x && nm_setting_802_1x_get_domain_suffix_match (s_8021x))
-               gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_domain_suffix_match (s_8021x));
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), method);
+               gtk_entry_set_text (method->domain_match_entry, nm_setting_802_1x_get_domain_suffix_match 
(s_8021x));
+       g_signal_connect_swapped (method->domain_match_entry, "changed", G_CALLBACK (changed_cb), method);
 
-       widget = inner_auth_combo_init (method, connection, s_8021x, secrets_only);
+       inner_auth_combo_init (method, connection, s_8021x, secrets_only);
        inner_auth_combo_changed_cb (method);
 
        if (secrets_only) {
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "anon_identity_entry"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "domain_match_entry"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_button"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ca_cert_not_required_check"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_label"));
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "inner_auth_combo"));
-               gtk_widget_hide (widget);
+               gtk_widget_hide (GTK_WIDGET (method->anon_identity_label));
+               gtk_widget_hide (GTK_WIDGET (method->anon_identity_entry));
+               gtk_widget_hide (GTK_WIDGET (method->domain_match_label));
+               gtk_widget_hide (GTK_WIDGET (method->domain_match_entry));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_label));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_button));
+               gtk_widget_hide (GTK_WIDGET (method->ca_cert_not_required_check));
+               gtk_widget_hide (GTK_WIDGET (method->inner_auth_label));
+               gtk_widget_hide (GTK_WIDGET (method->inner_auth_combo));
        }
 
        return method;
diff --git a/panels/network/wireless-security/ws-dynamic-wep.c 
b/panels/network/wireless-security/ws-dynamic-wep.c
index 2d28295d7..f4a1fad58 100644
--- a/panels/network/wireless-security/ws-dynamic-wep.c
+++ b/panels/network/wireless-security/ws-dynamic-wep.c
@@ -32,6 +32,11 @@
 struct _WirelessSecurityDynamicWEP {
        WirelessSecurity parent;
 
+       GtkComboBox *auth_combo;
+       GtkLabel    *auth_label;
+       GtkGrid     *grid;
+       GtkBox      *method_box;
+
        GtkSizeGroup *size_group;
 };
 
@@ -47,13 +52,15 @@ destroy (WirelessSecurity *parent)
 static GtkWidget *
 get_widget (WirelessSecurity *parent)
 {
-       return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
+       WirelessSecurityDynamicWEP *self = (WirelessSecurityDynamicWEP *) parent;
+       return GTK_WIDGET (self->grid);
 }
 
 static gboolean
 validate (WirelessSecurity *parent, GError **error)
 {
-       return ws_802_1x_validate (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), 
error);
+       WirelessSecurityDynamicWEP *self = (WirelessSecurityDynamicWEP *) parent;
+       return ws_802_1x_validate (self->auth_combo, error);
 }
 
 static void
@@ -65,17 +72,16 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
                g_object_unref (sec->size_group);
        sec->size_group = g_object_ref (group);
 
-       ws_802_1x_add_to_size_group (sec->size_group,
-                                    GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")),
-                                    GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")));
+       ws_802_1x_add_to_size_group (sec->size_group, sec->auth_label, sec->auth_combo);
 }
 
 static void
 fill_connection (WirelessSecurity *parent, NMConnection *connection)
 {
+       WirelessSecurityDynamicWEP *self = (WirelessSecurityDynamicWEP *) parent;
        NMSettingWirelessSecurity *s_wireless_sec;
 
-       ws_802_1x_fill_connection (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), 
connection);
+       ws_802_1x_fill_connection (self->auth_combo, connection);
 
        s_wireless_sec = nm_connection_get_setting_wireless_security (connection);
        g_assert (s_wireless_sec);
@@ -91,7 +97,7 @@ auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 
        ws_802_1x_auth_combo_changed (combo,
                                      parent,
-                                     GTK_BOX (gtk_builder_get_object (parent->builder, "method_box")),
+                                     sec->method_box,
                                      sec->size_group);
 }
 
@@ -101,6 +107,7 @@ ws_dynamic_wep_new (NMConnection *connection,
                     gboolean secrets_only)
 {
        WirelessSecurity *parent;
+       WirelessSecurityDynamicWEP *self;
 
        parent = wireless_security_init (sizeof (WirelessSecurityDynamicWEP),
                                         get_widget,
@@ -111,18 +118,24 @@ ws_dynamic_wep_new (NMConnection *connection,
                                         "/org/gnome/ControlCenter/network/ws-dynamic-wep.ui");
        if (!parent)
                return NULL;
+       self = (WirelessSecurityDynamicWEP *) parent;
+
+       self->auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo"));
+       self->auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label"));
+       self->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       self->method_box = GTK_BOX (gtk_builder_get_object (parent->builder, "method_box"));
 
        wireless_security_set_adhoc_compatible (parent, FALSE);
        wireless_security_set_hotspot_compatible (parent, FALSE);
 
        ws_802_1x_auth_combo_init (parent,
-                                  GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")),
-                                  GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")),
+                                  self->auth_combo,
+                                  self->auth_label,
                                   (GCallback) auth_combo_changed_cb,
                                   connection,
                                   is_editor,
                                   secrets_only);
-       auth_combo_changed_cb (GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_combo")), 
(gpointer) parent);
+       auth_combo_changed_cb (GTK_WIDGET (self->auth_combo), (gpointer) parent);
 
        return (WirelessSecurityDynamicWEP *) parent;
 }
diff --git a/panels/network/wireless-security/ws-leap.c b/panels/network/wireless-security/ws-leap.c
index 860883bb6..0abbbcbba 100644
--- a/panels/network/wireless-security/ws-leap.c
+++ b/panels/network/wireless-security/ws-leap.c
@@ -32,6 +32,14 @@
 
 struct _WirelessSecurityLEAP {
        WirelessSecurity parent;
+
+       GtkGrid        *grid;
+       GtkEntry       *password_entry;
+       GtkLabel       *password_label;
+       GtkCheckButton *show_password_check;
+       GtkEntry       *username_entry;
+       GtkLabel       *username_label;
+
        gboolean editing_connection;
        const char *password_flags_name;
 };
@@ -39,51 +47,43 @@ struct _WirelessSecurityLEAP {
 static void
 show_toggled_cb (WirelessSecurityLEAP *self)
 {
-       WirelessSecurity *sec = (WirelessSecurity *) self;
-       GtkWidget *widget;
        gboolean visible;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "show_password_check"));
-       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-
-       widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "password_entry"));
-       gtk_entry_set_visibility (GTK_ENTRY (widget), visible);
+       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check));
+       gtk_entry_set_visibility (self->password_entry, visible);
 }
 
 static GtkWidget *
 get_widget (WirelessSecurity *parent)
 {
-       return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
+       WirelessSecurityLEAP *self = (WirelessSecurityLEAP *) parent;
+       return GTK_WIDGET (self->grid);
 }
 
 static gboolean
 validate (WirelessSecurity *parent, GError **error)
 {
-       GtkWidget *entry;
+       WirelessSecurityLEAP *self = (WirelessSecurityLEAP *) parent;
        const char *text;
        gboolean ret = TRUE;
 
-       entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry"));
-       g_assert (entry);
-       text = gtk_entry_get_text (GTK_ENTRY (entry));
+       text = gtk_entry_get_text (self->username_entry);
        if (!text || !strlen (text)) {
-               widget_set_error (entry);
+               widget_set_error (GTK_WIDGET (self->username_entry));
                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-username"));
                ret = FALSE;
        } else
-               widget_unset_error (entry);
+               widget_unset_error (GTK_WIDGET (self->username_entry));
 
-       entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (entry);
-       text = gtk_entry_get_text (GTK_ENTRY (entry));
+       text = gtk_entry_get_text (self->password_entry);
        if (!text || !strlen (text)) {
-               widget_set_error (entry);
+               widget_set_error (GTK_WIDGET (self->password_entry));
                if (ret) {
                        g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-password"));
                        ret = FALSE;
                }
        } else
-               widget_unset_error (entry);
+               widget_unset_error (GTK_WIDGET (self->password_entry));
 
        return ret;
 }
@@ -91,13 +91,9 @@ validate (WirelessSecurity *parent, GError **error)
 static void
 add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
 {
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_label"));
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label"));
-       gtk_size_group_add_widget (group, widget);
+       WirelessSecurityLEAP *sec = (WirelessSecurityLEAP *) parent;
+       gtk_size_group_add_widget (group, GTK_WIDGET (sec->username_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (sec->password_label));
 }
 
 static void
@@ -106,19 +102,14 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
        WirelessSecurityLEAP *sec = (WirelessSecurityLEAP *) parent;
        NMSettingWirelessSecurity *s_wireless_sec;
        NMSettingSecretFlags secret_flags;
-       GtkWidget *widget, *passwd_entry;
        const char *leap_password = NULL, *leap_username = NULL;
 
        /* Blow away the old security setting by adding a clear one */
        s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
        nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry"));
-       leap_username = gtk_entry_get_text (GTK_ENTRY (widget));
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       passwd_entry = widget;
-       leap_password = gtk_entry_get_text (GTK_ENTRY (widget));
+       leap_username = gtk_entry_get_text (sec->username_entry);
+       leap_password = gtk_entry_get_text (sec->password_entry);
 
        g_object_set (s_wireless_sec,
                      NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "ieee8021x",
@@ -128,21 +119,22 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
                      NULL);
 
        /* Save LEAP_PASSWORD_FLAGS to the connection */
-       secret_flags = nma_utils_menu_to_secret_flags (passwd_entry);
+       secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (sec->password_entry));
        nm_setting_set_secret_flags (NM_SETTING (s_wireless_sec), sec->password_flags_name,
                                     secret_flags, NULL);
 
        /* Update secret flags and popup when editing the connection */
        if (sec->editing_connection)
-               nma_utils_update_password_storage (passwd_entry, secret_flags,
+               nma_utils_update_password_storage (GTK_WIDGET (sec->password_entry), secret_flags,
                                                   NM_SETTING (s_wireless_sec), sec->password_flags_name);
 }
 
 static void
 update_secrets (WirelessSecurity *parent, NMConnection *connection)
 {
+       WirelessSecurityLEAP *self = (WirelessSecurityLEAP *) parent;
        helper_fill_secret_entry (connection,
-                                 GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")),
+                                 self->password_entry,
                                  NM_TYPE_SETTING_WIRELESS_SECURITY,
                                  (HelperSecretFunc) nm_setting_wireless_security_get_leap_password);
 }
@@ -158,7 +150,6 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
 {
        WirelessSecurity *parent;
        WirelessSecurityLEAP *sec;
-       GtkWidget *widget;
        NMSettingWirelessSecurity *wsec = NULL;
 
        parent = wireless_security_init (sizeof (WirelessSecurityLEAP),
@@ -189,29 +180,30 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
        sec->editing_connection = secrets_only ? FALSE : TRUE;
        sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
+       sec->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       sec->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry"));
+       sec->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label"));
+       sec->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"show_password_check"));
+       sec->username_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "username_entry"));
+       sec->username_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "username_label"));
+
+       g_signal_connect_swapped (sec->password_entry, "changed", G_CALLBACK (changed_cb), sec);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
-       nma_utils_setup_password_storage (widget, 0, (NMSetting *) wsec, sec->password_flags_name,
+       nma_utils_setup_password_storage (GTK_WIDGET (sec->password_entry), 0, (NMSetting *) wsec, 
sec->password_flags_name,
                                          FALSE, secrets_only);
 
        if (wsec)
                update_secrets (WIRELESS_SECURITY (sec), connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "username_entry"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
+       g_signal_connect_swapped (sec->username_entry, "changed", G_CALLBACK (changed_cb), sec);
        if (wsec)
-               gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_wireless_security_get_leap_username 
(wsec));
+               gtk_entry_set_text (sec->username_entry, nm_setting_wireless_security_get_leap_username 
(wsec));
 
        if (secrets_only)
-               gtk_widget_hide (widget);
+               gtk_widget_hide (GTK_WIDGET (sec->username_entry));
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), sec);
+       g_signal_connect_swapped (sec->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), sec);
 
        return sec;
 }
diff --git a/panels/network/wireless-security/ws-wep-key.c b/panels/network/wireless-security/ws-wep-key.c
index fd3c07b22..4d84d5eb6 100644
--- a/panels/network/wireless-security/ws-wep-key.c
+++ b/panels/network/wireless-security/ws-wep-key.c
@@ -33,6 +33,15 @@
 struct _WirelessSecurityWEPKey {
        WirelessSecurity parent;
 
+       GtkComboBox    *auth_method_combo;
+       GtkLabel       *auth_method_label;
+       GtkGrid        *grid;
+       GtkEntry       *key_entry;
+       GtkComboBox    *key_index_combo;
+       GtkLabel       *key_index_label;
+       GtkLabel       *key_label;
+       GtkCheckButton *show_key_check;
+
        gboolean editing_connection;
        const char *password_flags_name;
 
@@ -44,44 +53,34 @@ struct _WirelessSecurityWEPKey {
 static void
 show_toggled_cb (WirelessSecurityWEPKey *self)
 {
-       WirelessSecurity *parent = (WirelessSecurity *) self;
-       GtkWidget *widget, *button;
        gboolean visible;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
-       g_assert (widget);
-
-       button = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_key_check"));
-       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
-       gtk_entry_set_visibility (GTK_ENTRY (widget), visible);
+       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_key_check));
+       gtk_entry_set_visibility (self->key_entry, visible);
 }
 
 static void
 key_index_combo_changed_cb (WirelessSecurityWEPKey *self)
 {
-       WirelessSecurity *parent = (WirelessSecurity *) self;
-       GtkWidget *combo, *entry;
        const char *key;
        int key_index;
 
        /* Save WEP key for old key index */
-       entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
-       key = gtk_entry_get_text (GTK_ENTRY (entry));
+       key = gtk_entry_get_text (self->key_entry);
        if (key)
                g_strlcpy (self->keys[self->cur_index], key, sizeof (self->keys[self->cur_index]));
        else
                memset (self->keys[self->cur_index], 0, sizeof (self->keys[self->cur_index]));
 
-       combo = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_combo"));
-       key_index = gtk_combo_box_get_active (GTK_COMBO_BOX (combo));
+       key_index = gtk_combo_box_get_active (self->key_index_combo);
        g_return_if_fail (key_index <= 3);
        g_return_if_fail (key_index >= 0);
 
        /* Populate entry with key from new index */
-       gtk_entry_set_text (GTK_ENTRY (entry), self->keys[key_index]);
+       gtk_entry_set_text (self->key_entry, self->keys[key_index]);
        self->cur_index = key_index;
 
-       wireless_security_notify_changed (parent);
+       wireless_security_notify_changed ((WirelessSecurity *) self);
 }
 
 static void
@@ -97,23 +96,20 @@ destroy (WirelessSecurity *parent)
 static GtkWidget *
 get_widget (WirelessSecurity *parent)
 {
-       return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
+       WirelessSecurityWEPKey *self = (WirelessSecurityWEPKey *) parent;
+       return GTK_WIDGET (self->grid);
 }
 
 static gboolean
 validate (WirelessSecurity *parent, GError **error)
 {
        WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent;
-       GtkWidget *entry;
        const char *key;
        int i;
 
-       entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
-       g_assert (entry);
-
-       key = gtk_entry_get_text (GTK_ENTRY (entry));
+       key = gtk_entry_get_text (sec->key_entry);
        if (!key) {
-               widget_set_error (entry);
+               widget_set_error (GTK_WIDGET (sec->key_entry));
                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing wep-key"));
                return FALSE;
        }
@@ -122,7 +118,7 @@ validate (WirelessSecurity *parent, GError **error)
                if ((strlen (key) == 10) || (strlen (key) == 26)) {
                        for (i = 0; i < strlen (key); i++) {
                                if (!g_ascii_isxdigit (key[i])) {
-                                       widget_set_error (entry);
+                                       widget_set_error (GTK_WIDGET (sec->key_entry));
                                        g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: 
key with a length of %zu must contain only hex-digits"), strlen (key));
                                        return FALSE;
                                }
@@ -130,19 +126,19 @@ validate (WirelessSecurity *parent, GError **error)
                } else if ((strlen (key) == 5) || (strlen (key) == 13)) {
                        for (i = 0; i < strlen (key); i++) {
                                if (!g_ascii_isprint (key[i])) {
-                                       widget_set_error (entry);
+                                       widget_set_error (GTK_WIDGET (sec->key_entry));
                                        g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: 
key with a length of %zu must contain only ascii characters"), strlen (key));
                                        return FALSE;
                                }
                        }
                } else {
-                       widget_set_error (entry);
+                       widget_set_error (GTK_WIDGET (sec->key_entry));
                        g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: wrong key 
length %zu. A key must be either of length 5/13 (ascii) or 10/26 (hex)"), strlen (key));
                        return FALSE;
                }
        } else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE) {
                if (!*key || (strlen (key) > 64)) {
-                       widget_set_error (entry);
+                       widget_set_error (GTK_WIDGET (sec->key_entry));
                        if (!*key)
                                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wep-key: 
passphrase must be non-empty"));
                        else
@@ -150,7 +146,7 @@ validate (WirelessSecurity *parent, GError **error)
                        return FALSE;
                }
        }
-       widget_unset_error (entry);
+       widget_unset_error (GTK_WIDGET (sec->key_entry));
 
        return TRUE;
 }
@@ -158,16 +154,10 @@ validate (WirelessSecurity *parent, GError **error)
 static void
 add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
 {
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_label"));
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_label"));
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_label"));
-       gtk_size_group_add_widget (group, widget);
+       WirelessSecurityWEPKey *self = (WirelessSecurityWEPKey *) parent;
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->auth_method_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->key_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->key_index_label));
 }
 
 static void
@@ -176,17 +166,13 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
        WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent;
        NMSettingWirelessSecurity *s_wsec;
        NMSettingSecretFlags secret_flags;
-       GtkWidget *widget, *passwd_entry;
        gint auth_alg;
        const char *key;
        int i;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo"));
-       auth_alg = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
+       auth_alg = gtk_combo_box_get_active (sec->auth_method_combo);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
-       passwd_entry = widget;
-       key = gtk_entry_get_text (GTK_ENTRY (widget));
+       key = gtk_entry_get_text (sec->key_entry);
        g_strlcpy (sec->keys[sec->cur_index], key, sizeof (sec->keys[sec->cur_index]));
 
        /* Blow away the old security setting by adding a clear one */
@@ -206,12 +192,12 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
        }
 
        /* Save WEP_KEY_FLAGS to the connection */
-       secret_flags = nma_utils_menu_to_secret_flags (passwd_entry);
+       secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (sec->key_entry));
        g_object_set (s_wsec, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, secret_flags, NULL);
 
        /* Update secret flags and popup when editing the connection */
        if (sec->editing_connection)
-               nma_utils_update_password_storage (passwd_entry, secret_flags,
+               nma_utils_update_password_storage (GTK_WIDGET (sec->key_entry), secret_flags,
                                                   NM_SETTING (s_wsec), sec->password_flags_name);
 }
 
@@ -221,10 +207,6 @@ wep_entry_filter_cb (WirelessSecurityWEPKey *self,
                      gint length,
                      gint *position)
 {
-       WirelessSecurity *parent = (WirelessSecurity *) self;
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
        if (self->type == NM_WEP_KEY_TYPE_KEY) {
                int i, count = 0;
                g_autofree gchar *result = g_new (gchar, length+1);
@@ -236,11 +218,11 @@ wep_entry_filter_cb (WirelessSecurityWEPKey *self,
                result[count] = 0;
 
                if (count > 0) {
-                       g_signal_handlers_block_by_func (widget, G_CALLBACK (wep_entry_filter_cb), self);
-                       gtk_editable_insert_text (GTK_EDITABLE (widget), result, count, position);
-                       g_signal_handlers_unblock_by_func (widget, G_CALLBACK (wep_entry_filter_cb), self);
+                       g_signal_handlers_block_by_func (self->key_entry, G_CALLBACK (wep_entry_filter_cb), 
self);
+                       gtk_editable_insert_text (GTK_EDITABLE (self->key_entry), result, count, position);
+                       g_signal_handlers_unblock_by_func (self->key_entry, G_CALLBACK (wep_entry_filter_cb), 
self);
                }
-               g_signal_stop_emission_by_name (widget, "insert-text");
+               g_signal_stop_emission_by_name (self->key_entry, "insert-text");
        }
 }
 
@@ -249,7 +231,6 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
 {
        WirelessSecurityWEPKey *sec = (WirelessSecurityWEPKey *) parent;
        NMSettingWirelessSecurity *s_wsec;
-       GtkWidget *widget;
        const char *tmp;
        int i;
 
@@ -260,9 +241,8 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
                        g_strlcpy (sec->keys[i], tmp, sizeof (sec->keys[i]));
        }
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
        if (strlen (sec->keys[sec->cur_index]))
-               gtk_entry_set_text (GTK_ENTRY (widget), sec->keys[sec->cur_index]);
+               gtk_entry_set_text (sec->key_entry, sec->keys[sec->cur_index]);
 }
 
 static void
@@ -279,7 +259,6 @@ ws_wep_key_new (NMConnection *connection,
 {
        WirelessSecurity *parent;
        WirelessSecurityWEPKey *sec;
-       GtkWidget *widget;
        NMSettingWirelessSecurity *s_wsec = NULL;
        NMSetting *setting = NULL;
        guint8 default_key_idx = 0;
@@ -295,20 +274,27 @@ ws_wep_key_new (NMConnection *connection,
                                         "/org/gnome/ControlCenter/network/ws-wep-key.ui");
        if (!parent)
                return NULL;
-
        sec = (WirelessSecurityWEPKey *) parent;
+
+       sec->auth_method_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, 
"auth_method_combo"));
+       sec->auth_method_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_method_label"));
+       sec->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       sec->key_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "key_entry"));
+       sec->key_index_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "key_index_combo"));
+       sec->key_index_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "key_index_label"));
+       sec->key_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "key_label"));
+       sec->show_key_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, "show_key_check"));
+
        sec->editing_connection = secrets_only ? FALSE : TRUE;
        sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_WEP_KEY0;
        sec->type = type;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_entry"));
-       g_assert (widget);
-       gtk_entry_set_width_chars (GTK_ENTRY (widget), 28);
+       gtk_entry_set_width_chars (sec->key_entry, 28);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        if (connection)
                setting = (NMSetting *) nm_connection_get_setting_wireless_security (connection);
-       nma_utils_setup_password_storage (widget, 0, setting, sec->password_flags_name,
+       nma_utils_setup_password_storage (GTK_WIDGET (sec->key_entry), 0, setting, sec->password_flags_name,
                                          FALSE, secrets_only);
 
        if (connection) {
@@ -328,40 +314,35 @@ ws_wep_key_new (NMConnection *connection,
                }
        }
 
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
-       g_signal_connect_swapped (widget, "insert-text", G_CALLBACK (wep_entry_filter_cb), sec);
+       g_signal_connect_swapped (sec->key_entry, "changed", G_CALLBACK (changed_cb), sec);
+       g_signal_connect_swapped (sec->key_entry, "insert-text", G_CALLBACK (wep_entry_filter_cb), sec);
        if (sec->type == NM_WEP_KEY_TYPE_KEY)
-               gtk_entry_set_max_length (GTK_ENTRY (widget), 26);
+               gtk_entry_set_max_length (sec->key_entry, 26);
        else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE)
-               gtk_entry_set_max_length (GTK_ENTRY (widget), 64);
+               gtk_entry_set_max_length (sec->key_entry, 64);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_combo"));
        if (connection && s_wsec)
                default_key_idx = nm_setting_wireless_security_get_wep_tx_keyidx (s_wsec);
 
-       gtk_combo_box_set_active (GTK_COMBO_BOX (widget), default_key_idx);
+       gtk_combo_box_set_active (sec->key_index_combo, default_key_idx);
        sec->cur_index = default_key_idx;
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (key_index_combo_changed_cb), sec);
+       g_signal_connect_swapped (sec->key_index_combo, "changed", G_CALLBACK (key_index_combo_changed_cb), 
sec);
 
        /* Key index is useless with adhoc networks */
        if (is_adhoc || secrets_only) {
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_label"));
-               gtk_widget_hide (widget);
+               gtk_widget_hide (GTK_WIDGET (sec->key_index_combo));
+               gtk_widget_hide (GTK_WIDGET (sec->key_index_label));
        }
 
        /* Fill the key entry with the key for that index */
        if (connection)
                update_secrets (WIRELESS_SECURITY (sec), connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_key_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), sec);
+       g_signal_connect_swapped (sec->show_key_check, "toggled", G_CALLBACK (show_toggled_cb), sec);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo"));
-       gtk_combo_box_set_active (GTK_COMBO_BOX (widget), is_shared_key ? 1 : 0);
+       gtk_combo_box_set_active (sec->auth_method_combo, is_shared_key ? 1 : 0);
 
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
+       g_signal_connect_swapped (sec->auth_method_combo, "changed", G_CALLBACK (changed_cb), sec);
 
        /* Don't show auth method for adhoc (which always uses open-system) or
         * when in "simple" mode.
@@ -369,10 +350,9 @@ ws_wep_key_new (NMConnection *connection,
        if (is_adhoc || secrets_only) {
                /* Ad-Hoc connections can't use Shared Key auth */
                if (is_adhoc)
-                       gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
-               gtk_widget_hide (widget);
-               widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_label"));
-               gtk_widget_hide (widget);
+                       gtk_combo_box_set_active (sec->auth_method_combo, 0);
+               gtk_widget_hide (GTK_WIDGET (sec->auth_method_combo));
+               gtk_widget_hide (GTK_WIDGET (sec->auth_method_label));
        }
 
        return sec;
diff --git a/panels/network/wireless-security/ws-wpa-eap.c b/panels/network/wireless-security/ws-wpa-eap.c
index 1a8e791ae..312074cbf 100644
--- a/panels/network/wireless-security/ws-wpa-eap.c
+++ b/panels/network/wireless-security/ws-wpa-eap.c
@@ -32,6 +32,11 @@
 struct _WirelessSecurityWPAEAP {
        WirelessSecurity parent;
 
+       GtkComboBox *auth_combo;
+       GtkLabel    *auth_label;
+       GtkGrid     *grid;
+       GtkBox      *method_box;
+
        GtkSizeGroup *size_group;
 };
 
@@ -48,13 +53,15 @@ destroy (WirelessSecurity *parent)
 static GtkWidget *
 get_widget (WirelessSecurity *parent)
 {
-       return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
+       WirelessSecurityWPAEAP *self = (WirelessSecurityWPAEAP *) parent;
+       return GTK_WIDGET (self->grid);
 }
 
 static gboolean
 validate (WirelessSecurity *parent, GError **error)
 {
-       return ws_802_1x_validate (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), 
error);
+       WirelessSecurityWPAEAP *self = (WirelessSecurityWPAEAP *) parent;
+       return ws_802_1x_validate (self->auth_combo, error);
 }
 
 static void
@@ -66,17 +73,16 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
                g_object_unref (sec->size_group);
        sec->size_group = g_object_ref (group);
 
-       ws_802_1x_add_to_size_group (sec->size_group,
-                                    GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")),
-                                    GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")));
+       ws_802_1x_add_to_size_group (sec->size_group, sec->auth_label, sec->auth_combo);
 }
 
 static void
 fill_connection (WirelessSecurity *parent, NMConnection *connection)
 {
+       WirelessSecurityWPAEAP *self = (WirelessSecurityWPAEAP *) parent;
        NMSettingWirelessSecurity *s_wireless_sec;
 
-       ws_802_1x_fill_connection (GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")), 
connection);
+       ws_802_1x_fill_connection (self->auth_combo, connection);
 
        s_wireless_sec = nm_connection_get_setting_wireless_security (connection);
        g_assert (s_wireless_sec);
@@ -92,7 +98,7 @@ auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 
        ws_802_1x_auth_combo_changed (combo,
                                      parent,
-                                     GTK_BOX (gtk_builder_get_object (parent->builder, "method_box")),
+                                     sec->method_box,
                                      sec->size_group);
 }
 
@@ -102,6 +108,7 @@ ws_wpa_eap_new (NMConnection *connection,
                 gboolean secrets_only)
 {
        WirelessSecurity *parent;
+       WirelessSecurityWPAEAP *self;
 
        parent = wireless_security_init (sizeof (WirelessSecurityWPAEAP),
                                         get_widget,
@@ -112,18 +119,24 @@ ws_wpa_eap_new (NMConnection *connection,
                                         "/org/gnome/ControlCenter/network/ws-wpa-eap.ui");
        if (!parent)
                return NULL;
+       self = (WirelessSecurityWPAEAP *) parent;
+
+       self->auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo"));
+       self->auth_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label"));
+       self->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       self->method_box = GTK_BOX (gtk_builder_get_object (parent->builder, "method_box"));
 
        wireless_security_set_adhoc_compatible (parent, FALSE);
        wireless_security_set_hotspot_compatible (parent, FALSE);
 
        ws_802_1x_auth_combo_init (parent,
-                                  GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "auth_combo")),
-                                  GTK_LABEL (gtk_builder_get_object (parent->builder, "auth_label")),
+                                  self->auth_combo,
+                                  self->auth_label,
                                   (GCallback) auth_combo_changed_cb,
                                   connection,
                                   is_editor,
                                   secrets_only);
-       auth_combo_changed_cb (GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_combo")), parent);
+       auth_combo_changed_cb (GTK_WIDGET (self->auth_combo), parent);
 
        return (WirelessSecurityWPAEAP *) parent;
 }
diff --git a/panels/network/wireless-security/ws-wpa-psk.c b/panels/network/wireless-security/ws-wpa-psk.c
index a02d38c5e..4e1ba3006 100644
--- a/panels/network/wireless-security/ws-wpa-psk.c
+++ b/panels/network/wireless-security/ws-wpa-psk.c
@@ -36,6 +36,13 @@
 struct _WirelessSecurityWPAPSK {
        WirelessSecurity parent;
 
+       GtkGrid        *grid;
+       GtkEntry       *password_entry;
+       GtkLabel       *password_label;
+       GtkCheckButton *show_password_check;
+       GtkComboBox    *type_combo;
+       GtkLabel       *type_label;
+
        gboolean editing_connection;
        const char *password_flags_name;
 };
@@ -43,38 +50,31 @@ struct _WirelessSecurityWPAPSK {
 static GtkWidget *
 get_widget (WirelessSecurity *parent)
 {
-       return GTK_WIDGET (gtk_builder_get_object (parent->builder, "grid"));
+       WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent;
+       return GTK_WIDGET (self->grid);
 }
 
 static void
 show_toggled_cb (WirelessSecurityWPAPSK *self)
 {
-       WirelessSecurity *sec = (WirelessSecurity *) self;
-       GtkWidget *widget;
        gboolean visible;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "show_password_check"));
-       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-
-       widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "password_entry"));
-       gtk_entry_set_visibility (GTK_ENTRY (widget), visible);
+       visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_password_check));
+       gtk_entry_set_visibility (self->password_entry, visible);
 }
 
 static gboolean
 validate (WirelessSecurity *parent, GError **error)
 {
-       GtkWidget *entry;
+       WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent;
        const char *key;
        gsize len;
        int i;
 
-       entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (entry);
-
-       key = gtk_entry_get_text (GTK_ENTRY (entry));
+       key = gtk_entry_get_text (self->password_entry);
        len = key ? strlen (key) : 0;
        if ((len < 8) || (len > 64)) {
-               widget_set_error (entry);
+               widget_set_error (GTK_WIDGET (self->password_entry));
                g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wpa-psk: invalid key-length %zu. 
Must be [8,63] bytes or 64 hex digits"), len);
                return FALSE;
        }
@@ -83,13 +83,13 @@ validate (WirelessSecurity *parent, GError **error)
                /* Hex PSK */
                for (i = 0; i < len; i++) {
                        if (!isxdigit (key[i])) {
-                               widget_set_error (entry);
+                               widget_set_error (GTK_WIDGET (self->password_entry));
                                g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("invalid wpa-psk: 
cannot interpret key with 64 bytes as hex"));
                                return FALSE;
                        }
                }
        }
-       widget_unset_error (entry);
+       widget_unset_error (GTK_WIDGET (self->password_entry));
 
        /* passphrase can be between 8 and 63 characters inclusive */
 
@@ -99,20 +99,15 @@ validate (WirelessSecurity *parent, GError **error)
 static void
 add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
 {
-       GtkWidget *widget;
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "type_label"));
-       gtk_size_group_add_widget (group, widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_label"));
-       gtk_size_group_add_widget (group, widget);
+       WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent;
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->type_label));
+       gtk_size_group_add_widget (group, GTK_WIDGET (self->password_label));
 }
 
 static void
 fill_connection (WirelessSecurity *parent, NMConnection *connection)
 {
        WirelessSecurityWPAPSK *wpa_psk = (WirelessSecurityWPAPSK *) parent;
-       GtkWidget *widget, *passwd_entry;
        const char *key;
        NMSettingWireless *s_wireless;
        NMSettingWirelessSecurity *s_wireless_sec;
@@ -131,19 +126,17 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
        s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
        nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       passwd_entry = widget;
-       key = gtk_entry_get_text (GTK_ENTRY (widget));
+       key = gtk_entry_get_text (wpa_psk->password_entry);
        g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_PSK, key, NULL);
 
        /* Save PSK_FLAGS to the connection */
-       secret_flags = nma_utils_menu_to_secret_flags (passwd_entry);
+       secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (wpa_psk->password_entry));
        nm_setting_set_secret_flags (NM_SETTING (s_wireless_sec), NM_SETTING_WIRELESS_SECURITY_PSK,
                                     secret_flags, NULL);
 
        /* Update secret flags and popup when editing the connection */
        if (wpa_psk->editing_connection)
-               nma_utils_update_password_storage (passwd_entry, secret_flags,
+               nma_utils_update_password_storage (GTK_WIDGET (wpa_psk->password_entry), secret_flags,
                                                   NM_SETTING (s_wireless_sec), wpa_psk->password_flags_name);
 
        wireless_security_clear_ciphers (connection);
@@ -169,8 +162,9 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
 static void
 update_secrets (WirelessSecurity *parent, NMConnection *connection)
 {
+       WirelessSecurityWPAPSK *self = (WirelessSecurityWPAPSK *) parent;
        helper_fill_secret_entry (connection,
-                                 GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry")),
+                                 self->password_entry,
                                  NM_TYPE_SETTING_WIRELESS_SECURITY,
                                  (HelperSecretFunc) nm_setting_wireless_security_get_psk);
 }
@@ -187,7 +181,6 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only)
        WirelessSecurity *parent;
        WirelessSecurityWPAPSK *sec;
        NMSetting *setting = NULL;
-       GtkWidget *widget;
 
        parent = wireless_security_init (sizeof (WirelessSecurityWPAPSK),
                                         get_widget,
@@ -198,42 +191,41 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only)
                                         "/org/gnome/ControlCenter/network/ws-wpa-psk.ui");
        if (!parent)
                return NULL;
+       sec = (WirelessSecurityWPAPSK *) parent;
+
+       sec->grid = GTK_GRID (gtk_builder_get_object (parent->builder, "grid"));
+       sec->password_entry = GTK_ENTRY (gtk_builder_get_object (parent->builder, "password_entry"));
+       sec->password_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "password_label"));
+       sec->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (parent->builder, 
"show_password_check"));
+       sec->type_combo = GTK_COMBO_BOX (gtk_builder_get_object (parent->builder, "type_combo"));
+       sec->type_label = GTK_LABEL (gtk_builder_get_object (parent->builder, "type_label"));
 
        wireless_security_set_adhoc_compatible (parent, FALSE);
-       sec = (WirelessSecurityWPAPSK *) parent;
+
        sec->editing_connection = secrets_only ? FALSE : TRUE;
        sec->password_flags_name = NM_SETTING_WIRELESS_SECURITY_PSK;
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "password_entry"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "changed", G_CALLBACK (changed_cb), sec);
-       gtk_entry_set_width_chars (GTK_ENTRY (widget), 28);
+       g_signal_connect_swapped (sec->password_entry, "changed", G_CALLBACK (changed_cb), sec);
+       gtk_entry_set_width_chars (sec->password_entry, 28);
 
        /* Create password-storage popup menu for password entry under entry's secondary icon */
        if (connection)
                setting = (NMSetting *) nm_connection_get_setting_wireless_security (connection);
-       nma_utils_setup_password_storage (widget, 0, setting, sec->password_flags_name,
+       nma_utils_setup_password_storage (GTK_WIDGET (sec->password_entry), 0, setting, 
sec->password_flags_name,
                                          FALSE, secrets_only);
 
        /* Fill secrets, if any */
        if (connection)
                update_secrets (WIRELESS_SECURITY (sec), connection);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_password_check"));
-       g_assert (widget);
-       g_signal_connect_swapped (widget, "toggled", G_CALLBACK (show_toggled_cb), sec);
+       g_signal_connect_swapped (sec->show_password_check, "toggled", G_CALLBACK (show_toggled_cb), sec);
 
        /* Hide WPA/RSN for now since this can be autodetected by NM and the
         * supplicant when connecting to the AP.
         */
 
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "type_combo"));
-       g_assert (widget);
-       gtk_widget_hide (widget);
-
-       widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "type_label"));
-       g_assert (widget);
-       gtk_widget_hide (widget);
+       gtk_widget_hide (GTK_WIDGET (sec->type_combo));
+       gtk_widget_hide (GTK_WIDGET (sec->type_label));
 
        return sec;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]