diff --git a/networkd/defaults/main.yml b/networkd/defaults/main.yml
index a9d2b38fc002cb7f3eec93d52a6e37c640daac1f..00c368f17caf5ae1836fe7bdc28195c2dd3ea36c 100644
--- a/networkd/defaults/main.yml
+++ b/networkd/defaults/main.yml
@@ -7,7 +7,7 @@ networkd_address: 10.10.10.10/24
 networkd_gateway: 10.10.10.1
 
 # for bond type only
-networkd_bond: bond0
+networkd_bond: bond1
 networkd_bond_devices: [ eth0, eth1 ]
 networkd_bond_vlans:
   - id: 23
diff --git a/networkd/handlers/main.yml b/networkd/handlers/main.yml
index 1c3361f9a70161cdaef3af3294eb18e421aec178..19aee0c90bbf64005d14e5466cfc27b407657836 100644
--- a/networkd/handlers/main.yml
+++ b/networkd/handlers/main.yml
@@ -1,8 +1,5 @@
 ---
 
-- name: reload systemd service files
-  systemd: daemon_reload=yes
-
 - name: restart networkd
   service: name=systemd-networkd state=restarted
 
diff --git a/networkd/tasks/main.yml b/networkd/tasks/main.yml
index f7885307a3cbbff1f4bd385c4f4022ff3f782128..d7b444566f8072bf251f2c736fcb97e59eb1ecc5 100644
--- a/networkd/tasks/main.yml
+++ b/networkd/tasks/main.yml
@@ -8,7 +8,6 @@
     group: root
     mode: 0644
   notify:
-    - reload systemd service files
     - restart networkd
 
 - name: ensure bonding works correctly
@@ -35,6 +34,8 @@
         owner: root
         group: root
         mode: 0644
+      notify:
+        - restart networkd
     - name: ensure bond network is configured   
       template:
         src: bond.network.j2
@@ -42,6 +43,8 @@
         owner: root
         group: root
         mode: 0644
+      notify:
+        - restart networkd
     - name: ensure vlan netdevs are configured
       template:
         src: vlan.netdev.j2
@@ -49,7 +52,9 @@
         owner: root
         group: root
         mode: 0644
-      with_items: networkd_bond_vlans
+      with_items: "{{ networkd_bond_vlans }}"
+      notify:
+        - restart networkd
     - name: ensure vlan networks are configured
       template:
         src: vlan.network.j2
@@ -57,7 +62,9 @@
         owner: root
         group: root
         mode: 0644
-      with_items: networkd_bond_vlans
+      with_items: "{{ networkd_bond_vlans }}"
+      notify:
+        - restart networkd
     - name: ensure bridge netdevs are configured
       template:
         src: bridge.netdev.j2
@@ -65,8 +72,10 @@
         owner: root
         group: root
         mode: 0644
-      with_items: networkd_bond_vlans
-      when: item.bridge == yes
+      with_items: "{{ networkd_bond_vlans }}"
+      when: item.bridge == True
+      notify:
+        - restart networkd
     - name: ensure bridge networks are configured
       template:
         src: bridge.network.j2
@@ -74,14 +83,11 @@
         owner: root
         group: root
         mode: 0644
-      with_items: networkd_bond_vlans
-      when: item.bridge == yes and 'address' in item
+      with_items: "{{ networkd_bond_vlans }}"
+      when: item.bridge == True
+      notify:
+        - restart networkd
   when: networkd_type == 'bond'
-  notify:
-    - reload systemd service files
-    - restart networkd
-
-- meta: flush_handlers
 
 - name: ensure networkd is enabled and running
   service:
@@ -94,6 +100,11 @@
     name: networking
     enabled: no
 
+- name: ensure legacy methods are really disabled
+  apt:
+    name: ifupdown
+    state: absent
+
 - name: ensure we wait for network to be online
   service:
     name: systemd-networkd-wait-online
diff --git a/networkd/templates/bond.network.j2 b/networkd/templates/bond.network.j2
index aa8627d2142395bb0c2d483e9a0a1234a4988f7f..0677510d7b9bbb535131c86bcc1271568d8ce2f9 100644
--- a/networkd/templates/bond.network.j2
+++ b/networkd/templates/bond.network.j2
@@ -2,7 +2,7 @@
 Name={{ networkd_bond }}
 
 [Network]
-{%- for vlan in networkd_bond_vlans %}
+{% for vlan in networkd_bond_vlans %}
 VLAN=vl-{{ vlan.name }}
-{% endfor -%}
+{% endfor %}
 BindCarrier={{ networkd_bond_devices|join(' ') }}
diff --git a/networkd/templates/bridge.network.j2 b/networkd/templates/bridge.network.j2
index 1149208fb2eb9a81dee50ecb83bdd678c6f34b17..8fc4ae337ea28a8c96cfa2d58e376c56afe5b448 100644
--- a/networkd/templates/bridge.network.j2
+++ b/networkd/templates/bridge.network.j2
@@ -2,7 +2,9 @@
 Name=vmbr-{{ item.name }}
 
 [Network]
+{% if 'address' in item %}
 Address={{ item.address }}
-{%- if item.gateway %}
+{% if 'gateway' in item %}
 Gateway={{ item.gateway }}
-{% endif -%}
+{% endif %}
+{% endif %}
diff --git a/networkd/templates/vlan.network.j2 b/networkd/templates/vlan.network.j2
index 959fbc75c592cad839d44fbf84e52bb98b729d76..79f5a81f7e6671b25df5bc7688be7239b65cd759 100644
--- a/networkd/templates/vlan.network.j2
+++ b/networkd/templates/vlan.network.j2
@@ -2,13 +2,13 @@
 Name=vl-{{ item.name }}
 
 [Network]
-{%- if item.bridge %}
+{% if item.bridge %}
 Bridge=vmbr-{{ item.name }}
 {% else %}
-{%- if item.address %}
+{% if 'address' in item %}
 Address={{ item.address }}
-{%- if item.gateway %}
+{% if 'gateway' in item %}
 Gateway={{ item.gateway }}
-{% endif -%}
-{% endif -%}
-{% endif -%}
+{% endif %}
+{% endif %}
+{% endif %}