diff --git a/roles/arch32_mirror/handlers/main.yml b/roles/arch32_mirror/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/arch32_mirror/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/arch32_mirror/tasks/main.yml b/roles/arch32_mirror/tasks/main.yml
index c420a87f836274179a2844c164dd202f8eb46ae6..76ab91c32c36d99f63ef2cb0d043977054f05079 100644
--- a/roles/arch32_mirror/tasks/main.yml
+++ b/roles/arch32_mirror/tasks/main.yml
@@ -15,13 +15,13 @@
   with_items:
     - syncrepo_arch32.timer
     - syncrepo_arch32.service
-  notify:
-    - daemon reload
 
 - name: start and enable syncrepo unit
-  service: name={{ item }} enabled=yes state=started
-  with_items:
-    - syncrepo_arch32.timer
+  systemd:
+    name: syncrepo_arch32.timer
+    enabled: yes
+    state: started
+    daemon_reload: yes
 
 - name: make nginx log dir
   file: path=/var/log/nginx/{{ arch32_mirror_domain }} state=directory owner=root group=root mode=0755
diff --git a/roles/archbuild/handlers/main.yml b/roles/archbuild/handlers/main.yml
index f9ee6636586fd8066c42050e97a27c9130809a35..52af4ed0a25db20d7934b0f490f0d5ee63bdd6f4 100644
--- a/roles/archbuild/handlers/main.yml
+++ b/roles/archbuild/handlers/main.yml
@@ -1,4 +1,5 @@
 ---
 
 - name: daemon reload
-  command: systemctl daemon-reload
+  systemd:
+    daemon-reload: yes
diff --git a/roles/archive/handlers/main.yml b/roles/archive/handlers/main.yml
deleted file mode 100644
index 709a6fa282823a5bd248c5f436078094717aba76..0000000000000000000000000000000000000000
--- a/roles/archive/handlers/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
-
diff --git a/roles/archive/tasks/main.yml b/roles/archive/tasks/main.yml
index 3ec1b1a9c0133e8ecf4c931a6730f2cc6562e195..c41576c50cfe88f019b3239bc2ec892c4f8c5190 100644
--- a/roles/archive/tasks/main.yml
+++ b/roles/archive/tasks/main.yml
@@ -73,10 +73,12 @@
   loop:
     - archive-uploader.service
     - archive-uploader.timer
-  notify:
-    - daemon reload
   when: not archive_nginx_only
 
 - name: start uploader timer
-  service: name=archive-uploader.timer state=started enabled=yes
+  systemd:
+    name: archive-uploader.timer
+    enabled: yes
+    state: started
+    daemon_reload: yes
   when: not archive_nginx_only
diff --git a/roles/archweb/handlers/main.yml b/roles/archweb/handlers/main.yml
index d8f65e78464389fa906f2ce5fabab4fbdbcfc58c..3fe31173f01b83f6d2919b37abbff08c547b9aae 100644
--- a/roles/archweb/handlers/main.yml
+++ b/roles/archweb/handlers/main.yml
@@ -1,7 +1,8 @@
 ---
 
 - name: daemon reload
-  command: systemctl daemon-reload
+  systemd:
+    daemon-reload: yes
 
 - name: restart archweb memcached
   service: name=archweb-memcached state=restarted
diff --git a/roles/archweb/tasks/main.yml b/roles/archweb/tasks/main.yml
index ab72bc39d75d2d95b6932be179ddf925418fb3f5..043da360848a65524038ba31ae023f04f7220de7 100644
--- a/roles/archweb/tasks/main.yml
+++ b/roles/archweb/tasks/main.yml
@@ -257,12 +257,15 @@
   when: archweb_site and (release.changed or config.changed or virtualenv.changed or archweb_forced_deploy)
   notify: restart archweb memcached
 
-- name: start and enable archweb memcached service
-  service: name="archweb-memcached.service" enabled=yes state=started
-  when: archweb_site|bool
-
-- name: start and enable archweb rsync iso timer
-  service: name="archweb-rsync_iso.timer" enabled=yes state=started
+- name: start and enable archweb memcached service and archweb-rsync_iso timer
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
+  with_items:
+    - archweb-memcached.service
+    - archweb-rsync_iso.timer
   when: archweb_site|bool
 
 - name: start and enable archweb reporead service
@@ -289,12 +292,15 @@
   service: name="archweb-planet.timer" enabled=yes state=started
   when: archweb_planet
 
-- name: start and enable archweb donor_import timer
-  service: name="archweb-donor_import.timer" enabled=yes state=started
-  when: archweb_donor_import|bool
-
-- name: start and enable archweb dump donor timer
-  service: name="archweb-dump_donor_mail.timer" enabled=yes state=started
+- name: start and enable archweb donor_import and archweb-dump_donor_mail timer
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
+  with_items:
+    - archweb-donor_import.timer
+    - archweb-dump_donor_mail.timer
   when: archweb_donor_import|bool
 
 - name: create retro dir
diff --git a/roles/archwiki/handlers/main.yml b/roles/archwiki/handlers/main.yml
index f171ee7d44d2ba578dd65f09430868774835445a..93244fc490e63e8256fab92de0edce3a3f52c4bc 100644
--- a/roles/archwiki/handlers/main.yml
+++ b/roles/archwiki/handlers/main.yml
@@ -1,8 +1,5 @@
 ---
 
-- name: daemon reload
-  command: systemctl daemon-reload
-
 - name: restart php-fpm@archwiki
   service: name=php-fpm@{{ archwiki_user }} state=restarted
 
diff --git a/roles/archwiki/tasks/main.yml b/roles/archwiki/tasks/main.yml
index b0beeb43f5cbcd4e1ca96a012be329011b862745..8352a009b525e8e45782fd3f5467c533b7ce0f31 100644
--- a/roles/archwiki/tasks/main.yml
+++ b/roles/archwiki/tasks/main.yml
@@ -97,20 +97,23 @@
     - archwiki-question-updater.service
     - archwiki-memcached.service
 
-- name: start and enable archwiki runjobs timer
-  service: name="archwiki-runjobs.timer" enabled=yes state=started
-
-- name: start and enable archwiki prune cache timer
-  service: name="archwiki-prune-cache.timer" enabled=yes state=started
-
-- name: start and enable archwiki runjobs wait service
-  service: name="archwiki-runjobs-wait.service" enabled=yes state=started
+- name: start and enable archwiki timers and services
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
+  with_items:
+    - archwiki-runjobs.timer
+    - archwiki-prune-cache.timer
+    - archwiki-runjobs-wait.service
+    - archwiki-memcached.service
 
 - name: create question answer file
-  service: name=archwiki-question-updater.service state=started
-
-- name: start and enable archwiki memcached
-  service: name=archwiki-memcached.service enabled=yes state=started
+  systemd:
+    name: archwiki-question-updater.service
+    state: started
+    daemon_reload: yes
 
 - name: ensure question answer file exists and set permissions
   file: state=file path="{{ archwiki_question_answer_file }}" owner=root group=root mode=0644
diff --git a/roles/certbot/handlers/main.yml b/roles/certbot/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/certbot/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/certbot/tasks/main.yml b/roles/certbot/tasks/main.yml
index fe74a707b3e57accdfc287ead409f07c8ce95d6b..8481c81c4868452bdca737ebfeea16356cbc9aad 100644
--- a/roles/certbot/tasks/main.yml
+++ b/roles/certbot/tasks/main.yml
@@ -14,11 +14,13 @@
   with_items:
     - certbot-renewal.service
     - certbot-renewal.timer
-  notify:
-    - daemon reload
 
 - name: activate letsencrypt renewal service
-  service: name=certbot-renewal.timer enabled=yes state=started
+  systemd:
+    name: certbot-renewal.timer
+    enabled: yes
+    state: started
+    daemon_reload: yes
 
 - name: open firewall holes for certbot standalone authenticator
   firewalld: service={{ item }} permanent=true state=enabled immediate=yes
diff --git a/roles/common/handlers/main.yml b/roles/common/handlers/main.yml
index 004a6ef0fc1f31aea2071324ca8794593bc39924..4f5797ff3f21dc3981c6f85a2e3442109da4c9e2 100644
--- a/roles/common/handlers/main.yml
+++ b/roles/common/handlers/main.yml
@@ -1,13 +1,20 @@
 ---
 
 - name: restart networkd
-  service: name=systemd-networkd state=restarted
+  systemd:
+    name: systemd-networkd
+    state: resarted
+    daemon_reload: yes
 
-- name: restarted journald
-  service: name=systemd-journald state=restarted
+- name: restart journald
+  systemd:
+    name: systemd-journald
+    state: restarted
+    daemon_reload: yes
 
 - name: systemd daemon-reload
-  command: systemctl daemon-reload
+  systemd:
+    daemon_reload: yes
 
 - name: restart syslog-ng
   service: name=syslog-ng@default state=restarted
diff --git a/roles/dbscripts/tasks/main.yml b/roles/dbscripts/tasks/main.yml
index 5345e68f41c1799e9e7a021d4f9e1170ea3e936b..81db8ed56ea865c273f404937c3dd10f2a07f83f 100644
--- a/roles/dbscripts/tasks/main.yml
+++ b/roles/dbscripts/tasks/main.yml
@@ -201,6 +201,8 @@
   become_user: svntogit
   register: git_config_username
   changed_when: "git_config_username.rc == 0"
+  tags:
+  - skip_ansible_lint
 
 - name: configure svntogit git user email
   command: git config --global user.name = 'svntogit@repos.archlinux.org'
@@ -208,6 +210,8 @@
   become_user: svntogit
   register: git_config_email
   changed_when: "git_config_email.rc == 0"
+  tags:
+  - skip_ansible_lint
 
 - name: template arch-svntogit
   copy: src=update-repos.sh dest=/srv/svntogit/update-repos.sh owner=root group=root mode=0755
@@ -222,6 +226,8 @@
     - packages
   become: yes
   become_user: svntogit
+  tags:
+  - skip_ansible_lint
 
 - name: add svntogit public remotes
   command: git remote add public ssh://git.archlinux.org/srv/git/svntogit/{{ item }}.git chdir=/srv/svntogit/repos/{{ item }}
@@ -233,6 +239,8 @@
   ignore_errors: yes
   register: git_public_remote
   changed_when: "git_public_remote.rc == 0"
+  tags:
+  - skip_ansible_lint
 
   # The following command also serves as a way to get the data the first time the repo is set up
 - name: configure svntogit pull upstream branch
@@ -244,6 +252,8 @@
   become_user: svntogit
   register: git_pull_upstream
   changed_when: "git_pull_upstream.rc == 0"
+  tags:
+  - skip_ansible_lint
 
 - name: configure svntogit push upstream branch
   command: git push -u public master chdir=/srv/svntogit/repos/{{ item }}
@@ -254,6 +264,8 @@
   become_user: svntogit
   register: git_push_master
   changed_when: "git_push_master.rc == 0"
+  tags:
+  - skip_ansible_lint
 
 - name: fix svntogit home permissions
   file: path="/srv/svntogit" state=directory owner=svntogit group=svntogit mode=0775
diff --git a/roles/docker-image/handlers/main.yml b/roles/docker-image/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/docker-image/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/docker-image/tasks/main.yml b/roles/docker-image/tasks/main.yml
index 155432359450fffc08a8b45429f6b160b7520935..34cf62d889f27d3c45898fd6668d18b6c4f89976 100644
--- a/roles/docker-image/tasks/main.yml
+++ b/roles/docker-image/tasks/main.yml
@@ -16,13 +16,13 @@
 
 - name: install docker_image service
   template: src='docker-image.service.j2' dest='/etc/systemd/system/docker-image.service' owner=root group=root mode=0644
-  notify:
-    - daemon reload
 
 - name: install docker_image timer
   template: src='docker-image.timer.j2' dest='/etc/systemd/system/docker-image.timer' owner=root group=root mode=0644
-  notify:
-    - daemon reload
 
 - name: start and enable docker_image_build timer
-  service: name='docker-image.timer' enabled=yes state=started
+  systemd:
+    name: docker-image.timer
+    enabled: yes
+    state: started
+    daemon_reload: yes
diff --git a/roles/flyspray/handlers/main.yml b/roles/flyspray/handlers/main.yml
deleted file mode 100644
index 755cf4dd7533427b6cf7d4c8426aede5b1e74134..0000000000000000000000000000000000000000
--- a/roles/flyspray/handlers/main.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
-
-- name: restart php-fpm@flyspray
-  service: name=php-fpm@flyspray state=restarted
diff --git a/roles/install_arch/tasks/main.yml b/roles/install_arch/tasks/main.yml
index 3540d57f8a02ada8121a8d89f35795224feb6067..4184c564d5cba6dc5c82817962e106700583b2ac 100644
--- a/roles/install_arch/tasks/main.yml
+++ b/roles/install_arch/tasks/main.yml
@@ -54,25 +54,49 @@
     dest: /tmp/
 
 - name: extract boostrap image
-  command: tar xf archlinux-bootstrap-{{ bootstrap_version }}-x86_64.tar.gz
-  args:
-    chdir: /tmp
+  unarchive:
+    src: /tmp/archlinux-bootstrap-{{ bootstrap_version }}-x86_64.tar.gz
+    dest: /tmp
     creates: /tmp/root.x86_64
 
 - name: copy resolv.conf to bootstrap chroot
   copy: remote_src=True src=/etc/resolv.conf dest=/tmp/root.x86_64/etc/resolv.conf
 
 - name: mount /proc to bootstrap chroot
-  command: mount --rbind /proc /tmp/root.x86_64/proc creates=/tmp/root.x86_64/proc/uptime
+  mount:
+    src: /proc
+    path: /tmp/root.x86_64/proc
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
 
 - name: mount /sys to bootstrap chroot
-  command: mount --rbind /sys /tmp/root.x86_64/sys creates=/tmp/root.x86_64/sys/dev
+  mount:
+    src: /sys
+    path: /tmp/root.x86_64/sys
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
 
 - name: mount /dev to bootstrap chroot
-  command: mount --rbind /dev /tmp/root.x86_64/dev creates=/tmp/root.x86_64/dev/zero
+  mount:
+    src: /dev
+    path: /tmp/root.x86_64/dev
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
 
 - name: mount /mnt to bootstrap chroot
-  command: mount --rbind /mnt /tmp/root.x86_64/mnt creates=/tmp/root.x86_64/mnt/LOCK
+  mount:
+    src: /mnt
+    path: /tmp/root.x86_64/mnt
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
 
 - name: configure pacman mirror
   template: src=mirrorlist.j2 dest=/tmp/root.x86_64/etc/pacman.d/mirrorlist owner=root group=root mode=0644
@@ -101,13 +125,32 @@
     creates: /tmp/root.x86_64/mnt/bin
 
 - name: mount /proc to new chroot
-  command: mount --rbind /proc /mnt/proc creates=/mnt/proc/uptime
+  mount:
+    src: /proc
+    path: /mnt/proc
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
 
 - name: mount /sys to new chroot
-  command: mount --rbind /sys /mnt/sys creates=/mnt/sys/dev
+  mount:
+    src: /sys
+    path: /mnt/sys
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
 
 - name: mount /dev to new chroot
-  command: mount --rbind /dev /mnt/dev creates=/mnt/dev/zero
+  mount:
+    src: /dev
+    path: /mnt/dev
+    opts: rbind
+    state: mounted
+    fstype: none
+    fstab: /dev/null
+  when: not stat_result_dev.stat.exists
 
 - name: generate mdadm.conf
   shell: mdadm --detail --scan >> /mnt/etc/mdadm.conf
diff --git a/roles/nginx/handlers/main.yml b/roles/nginx/handlers/main.yml
index 03a91e1d5b066db73c527c6a25e207df55bd1d3a..9b158e43646299d3ee72447a78acb7e24f14054a 100644
--- a/roles/nginx/handlers/main.yml
+++ b/roles/nginx/handlers/main.yml
@@ -5,6 +5,3 @@
 
 - name: reload nginx
   service: name=nginx state=reloaded
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/patchwork/handlers/main.yml b/roles/patchwork/handlers/main.yml
index 4476a11eb2918d9a132ad1a18deefd715e74dc4a..3deba83bf346040c5dc28feeaba433c1a4301dbb 100644
--- a/roles/patchwork/handlers/main.yml
+++ b/roles/patchwork/handlers/main.yml
@@ -1,7 +1,4 @@
 ---
 
-- name: daemon reload
-  command: systemctl daemon-reload
-
 - name: restart patchwork memcached
   service: name=patchwork-memcached state=restarted
diff --git a/roles/patchwork/tasks/main.yml b/roles/patchwork/tasks/main.yml
index d47478a4445824838366de78f73b7aee635024df..e0c7c3fad79b46cee57a8d4a5b4721ff45a02037 100644
--- a/roles/patchwork/tasks/main.yml
+++ b/roles/patchwork/tasks/main.yml
@@ -121,8 +121,12 @@
   file: path=/etc/uwsgi/vassals/patchwork.ini state=touch
   when: (release.changed or config.changed or virtualenv.changed or patchwork_forced_deploy)
 
-- name: start and enable patchwork memcached service
-  service: name="patchwork-memcached.service" enabled=yes state=started
-
-- name: start and enable patchwork notification timer
-  service: name="patchwork-notification.timer" enabled=yes state=started
+- name: start and enable patchwork memcached service and notification timer
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
+  with_items:
+    - patchwork-memcached.service
+    - patchwork-notification.timer
diff --git a/roles/php-fpm/handlers/main.yaml b/roles/php-fpm/handlers/main.yaml
index 4aeec73ae93997ee71f531b7295ee9cda1c34001..38af3091ef2c5ce70a37c8829364d2332e2c29b7 100644
--- a/roles/php-fpm/handlers/main.yaml
+++ b/roles/php-fpm/handlers/main.yaml
@@ -1,3 +1,4 @@
 ---
 - name: daemon reload
-  command: systemctl daemon-reload
+  systemd:
+    reload-daemon: yes
diff --git a/roles/phrik/handlers/main.yml b/roles/phrik/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/phrik/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/phrik/tasks/main.yml b/roles/phrik/tasks/main.yml
index 245d5a56dc4f7d6b075f922f7f2113542b12a971..cd621c2f76b463f08835c0f09a6a73ab5cb947a9 100644
--- a/roles/phrik/tasks/main.yml
+++ b/roles/phrik/tasks/main.yml
@@ -29,11 +29,13 @@
 
 - name: install phrik systemd service
   copy: src=phrik.service dest=/etc/systemd/system/phrik.service
-  notify:
-    - daemon reload
 
-- name: start and enable pkgfile service
-  service: name="pkgfile-update.service" enabled=yes state=started
-
-- name: start and enable phrik service
-  service: name="phrik.service" enabled=yes state=started
+- name: start and enable pkgfile and phrikservice
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
+  with_items:
+    - pkgfile-update.service
+    - phrik.service
diff --git a/roles/security_tracker/handlers/main.yml b/roles/security_tracker/handlers/main.yml
index dc3e7d6a8791a55411fcd4eeb879d6a556af6c28..a4011489df7127f43a980c00172b63db18007504 100644
--- a/roles/security_tracker/handlers/main.yml
+++ b/roles/security_tracker/handlers/main.yml
@@ -1,8 +1,5 @@
 ---
 
-- name: daemon reload
-  command: systemctl daemon-reload
-
 - name: upgrade database
   become: true
   become_user: security
diff --git a/roles/security_tracker/tasks/main.yml b/roles/security_tracker/tasks/main.yml
index 78d34c32305c8c41bdddb4456c70574cf796d074..61ab1c640bee0094baba8008e2d4047f3b956258 100644
--- a/roles/security_tracker/tasks/main.yml
+++ b/roles/security_tracker/tasks/main.yml
@@ -93,5 +93,9 @@
   when: release.changed
 
 - name: start and enable security-tracker timer
-  service: name="security-tracker-update.timer" enabled=yes state=started
+  systemd:
+    name: security-tracker-update.timer
+    enabled: yes
+    state: started
+    daemon_reload: yes
   when: maintenance is not defined
diff --git a/roles/sogrep/handlers/main.yml b/roles/sogrep/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/sogrep/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/sogrep/tasks/main.yml b/roles/sogrep/tasks/main.yml
index 0b6c7f84c99ca617985c9459205be0c890272f34..689c40e3b165c4c0bf9ccd7dde3f8632b31293c5 100644
--- a/roles/sogrep/tasks/main.yml
+++ b/roles/sogrep/tasks/main.yml
@@ -16,8 +16,10 @@
   with_items:
     - createlinks.timer
     - createlinks.service
-  notify:
-    - daemon reload
 
 - name: start and enable sogrep units
-  service: name=createlinks.timer enabled=yes state=started
+  systemd:
+    name: createlinks.timer
+    enabled: yes
+    state: started
+    daemon_reload: yes
diff --git a/roles/spampd/handlers/main.yml b/roles/spampd/handlers/main.yml
index 46dea4eb7a5b23b1543d31f8d87c39014947a821..05d4f7a91b6b55006e731b30932dbe9b69e53b21 100644
--- a/roles/spampd/handlers/main.yml
+++ b/roles/spampd/handlers/main.yml
@@ -1,8 +1,5 @@
 ---
 
-- name: systemd daemon reload
-  command: systemctl daemon-reload
-
 - name: restart spampd
   service: name=spampd state=restarted
 
diff --git a/roles/spampd/tasks/main.yml b/roles/spampd/tasks/main.yml
index e1052855ac946a913ad2198416bde3996ed9a12e..0465413a10938c45272656ac17785c9acd516dd9 100644
--- a/roles/spampd/tasks/main.yml
+++ b/roles/spampd/tasks/main.yml
@@ -57,13 +57,16 @@
 - name: activate systemd timers
   service: name={{ item }} enabled=yes state=started
   with_items:
-    sa-update.timer
+    - sa-update.timer
 
 - name: remove override directory
   file: path=/etc/systemd/system/spampd.service.d/ state=absent
   notify:
-    - systemd daemon reload
     - restart spampd
 
 - name: start spampd
-  service: name=spampd enabled=yes state=started
+  systemd:
+    name: spampd
+    enabled: yes
+    state: started
+    daemon_reload: yes
diff --git a/roles/syncarchive/handlers/main.yml b/roles/syncarchive/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/syncarchive/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/syncarchive/tasks/main.yml b/roles/syncarchive/tasks/main.yml
index fe59681073d6508b23eb38ea9da2455ec401c311..447dca6b706713396f50427256b7179670fba93f 100644
--- a/roles/syncarchive/tasks/main.yml
+++ b/roles/syncarchive/tasks/main.yml
@@ -10,10 +10,12 @@
   with_items:
     - syncarchive.timer
     - syncarchive.service
-  notify:
-    - daemon reload
 
 - name: start and enable syncarchive units
-  service: name={{ item }} enabled=yes state=started
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
   with_items:
     - syncarchive.timer
diff --git a/roles/syncrepo/handlers/main.yml b/roles/syncrepo/handlers/main.yml
deleted file mode 100644
index f9ee6636586fd8066c42050e97a27c9130809a35..0000000000000000000000000000000000000000
--- a/roles/syncrepo/handlers/main.yml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
-- name: daemon reload
-  command: systemctl daemon-reload
diff --git a/roles/syncrepo/tasks/main.yml b/roles/syncrepo/tasks/main.yml
index 9afaf36b31ab0c9eef5e4467995d9b4d113fe261..959a3810107afad1e61d947f4b4ac7923c339eba 100644
--- a/roles/syncrepo/tasks/main.yml
+++ b/roles/syncrepo/tasks/main.yml
@@ -15,14 +15,16 @@
   with_items:
     - syncrepo.timer
     - syncrepo.service
-  notify:
-    - daemon reload
 
 - name: install rsyncd config
   copy: src=rsyncd.conf dest=/etc/rsyncd.conf owner=root group=root mode=0644
 
 - name: start and enable syncrepo units
-  service: name={{ item }} enabled=yes state=started
+  systemd:
+    name: "{{ item }}"
+    enabled: yes
+    state: started
+    daemon_reload: yes
   with_items:
     - syncrepo.timer
     - rsyncd.socket