diff --git a/apcupsd/tasks/main.yml b/apcupsd/tasks/main.yml
index 2949adcbf593f23f16b7a03c90ef956811a0522d..013af1812ff44256114b8c8d4eee8984fe5785e4 100644
--- a/apcupsd/tasks/main.yml
+++ b/apcupsd/tasks/main.yml
@@ -2,7 +2,7 @@
 # file: roles/baremetal/tasks/apcupsd.yml
 
 - name: ensure apcupsd is installed
-  apt: state=latest name=apcupsd
+  apt: state=present name=apcupsd
   notify:
     - restart apcupsd
   tags:
diff --git a/baremetal/tasks/main.yml b/baremetal/tasks/main.yml
index a6df5239e79d0c9bab45e34d6cac605a49764aa3..2ff72274221bea399814311be95d0d71e19ef9b6 100644
--- a/baremetal/tasks/main.yml
+++ b/baremetal/tasks/main.yml
@@ -3,14 +3,13 @@
 
 - name: ensure baremetal-specific packages are installed
   apt:
-    name: "{{ item }}"
+    name:
+      - lldpd
+      - lm-sensors
+      - hddtemp
+      - smartmontools
+      - hdparm
     state: present
-  with_items:
-    - lldpd
-    - lm-sensors
-    - hddtemp
-    - smartmontools
-    - hdparm
   tags:
     - baremetal
     - packages
diff --git a/branding/tasks/main.yml b/branding/tasks/main.yml
index 4826bf4970d17c2427b2f174ce8b6aa1aaf4a506..c6585e6559114c20611a61e9ada2f943a292d82a 100644
--- a/branding/tasks/main.yml
+++ b/branding/tasks/main.yml
@@ -82,7 +82,6 @@
   apt:
     name: apt-transport-https
     state: present
-  with_items: "{{ branding_apt_repos }}"
   when:
     - branding_apt_repos is defined
     - item|truncate(5, True, '') == "https"
diff --git a/cups-client/tasks/main.yml b/cups-client/tasks/main.yml
index 63830f093aad0b5ef8f5552c0e9c3000816e43ef..7965918ee8716ec51160df4e0bffd4ebdde9430e 100644
--- a/cups-client/tasks/main.yml
+++ b/cups-client/tasks/main.yml
@@ -2,10 +2,11 @@
 # file: roles/cups-client/tasks/main.yml
 
 - name: ensure cups-client is installed
-  apt: name="{{item}}" state=latest
-  with_items:
-    - cups-client
-    - cups-bsd
+  apt:
+    name:
+      - cups-client
+      - cups-bsd
+    state: latest
   tags:
     - cups-client
     - packages
diff --git a/debian-updates/tasks/main.yml b/debian-updates/tasks/main.yml
index cc8548c63742b26f2df7419fcc614d9bfcbfa296..e111da5e3456fd725c8d2ce80bff20e65059a07f 100644
--- a/debian-updates/tasks/main.yml
+++ b/debian-updates/tasks/main.yml
@@ -3,13 +3,12 @@
 
 - name: ensure any dependencies are available
   apt:
-    name: "{{ item }}"
+    name:
+      - python3
+      - fortune-mod
+      - fortunes
+      - fortunes-off
     state: present
-  with_items:
-    - python3
-    - fortune-mod
-    - fortunes
-    - fortunes-off
   tags:
     - debian-updates
 
diff --git a/management/tasks/main.yml b/management/tasks/main.yml
index 45f95e901403d3e46c05b097a0b0adbacdf784fd..d03f7c3255e9b1013d56bd6581e825afcb793c71 100644
--- a/management/tasks/main.yml
+++ b/management/tasks/main.yml
@@ -2,17 +2,16 @@
 
 - name: ensure required software for ansible is installed
   apt:
-    name: "{{ item }}"
+    name:
+      - python-yaml
+      - python-jinja2
+      - python-paramiko
+      - python-cryptography
+      - python-sphinx # documentation
+      - python-packaging
+      - asciidoc # documentation
+      - squashfs-tools # needed for guest-overlay
     state: present
-  with_items:
-    - python-yaml
-    - python-jinja2
-    - python-paramiko
-    - python-cryptography
-    - python-sphinx # documentation
-    - python-packaging
-    - asciidoc # documentation
-    - squashfs-tools # needed for guest-overlay
   tags:
     - management
     - ansible
@@ -59,12 +58,11 @@
 
 - name: ensure we have the necessary packages for building packages
   apt:
-    name: "{{ item }}"
+    name:
+      - build-essential
+      - devscripts
+      - debhelper
+      - quilt
     state: present
-  with_items:
-    - build-essential
-    - devscripts
-    - debhelper
-    - quilt
   tags:
     - management
diff --git a/nullmailer/tasks/main.yml b/nullmailer/tasks/main.yml
index b3529d5bdd9d2f4fa0eeb5a92a6fb95acc6326da..7d5ad372bbf851169eff7900b74c08a4b9bc546f 100644
--- a/nullmailer/tasks/main.yml
+++ b/nullmailer/tasks/main.yml
@@ -10,23 +10,25 @@
     - nullmailer
 
 - name: ensure other smtp daemons are uninstalled
-  apt: name={{ item }} state=absent purge=yes
-  with_items:
-    - exim4
-    - postfix
-    - citadel-mta
-    - courier-mta
-    - esmtp-run
-    - lsb-invalid-mta
-    - masqmail
-    - msmtp-mta
-    - postfix
-    - qmail-run
-    - sendmail-bin
-    - ssmtp
-    - dma
-    - exim4-daemon-heavy
-    - exim4-daemon-light
+  apt:
+    state: absent
+    purge: yes
+    name:
+      - exim4
+      - postfix
+      - citadel-mta
+      - courier-mta
+      - esmtp-run
+      - lsb-invalid-mta
+      - masqmail
+      - msmtp-mta
+      - postfix
+      - qmail-run
+      - sendmail-bin
+      - ssmtp
+      - dma
+      - exim4-daemon-heavy
+      - exim4-daemon-light
   tags:
     - packages
     - nullmailer
diff --git a/texlive/tasks/main.yml b/texlive/tasks/main.yml
index 727b75e0c5a00bc98ac81e5036c24e87ea301c93..8a5272e43491288c460e6ce9a23df4fc10671a85 100644
--- a/texlive/tasks/main.yml
+++ b/texlive/tasks/main.yml
@@ -4,68 +4,68 @@
 
 # this should be a real subset of texlive-full but not more than necessary
 - name: ensure texlive is installed
-  apt: name={{ item }} state=latest install_recommends=no
-  with_items:
-    - texlive-base
-    - texlive-games
-    - texlive-humanities
-    - texlive-math-extra
-    - texlive-music
-    - texlive-pictures
-    - texlive-publishers
-    - texlive-science
-    - texlive-xetex
-    - texlive-lang-german
-    - texlive-luatex
-    - texlive-bibtex-extra
-    - biber
+  apt:
+    name:
+      - texlive-base
+      - texlive-games
+      - texlive-humanities
+      - texlive-math-extra
+      - texlive-music
+      - texlive-pictures
+      - texlive-publishers
+      - texlive-science
+      - texlive-xetex
+      - texlive-lang-german
+      - texlive-luatex
+      - texlive-bibtex-extra
+      - biber
+    state: present
+    install_recommends: no
   tags:
     - texlive
     - packages
 
 - name: ensure some texlive recommandations are installed
-  apt: name={{ item }} state=latest install_recommends=no
-  with_items:
-    - ghostscript 
-    - lmodern 
-    - texlive-fonts-recommended-doc 
-    - tex-gyre
-    - texlive-humanities-doc 
-    - texlive-latex-base-doc 
-    - texlive-latex-extra-doc
-    - prosper
-    - texlive-latex-recommended-doc 
-    - texlive-pictures-doc 
-    - prerex 
-    - texlive-publishers-doc 
-    - texlive-science-doc
-    - libfile-mimeinfo-perl 
-    - libnet-dbus-perl 
-    - libx11-protocol-perl 
-    - x11-utils 
-    - x11-xserver-utils
-    - texlive-lang-greek
-    - fonts-cmu
-    - fonts-sil-charis
-    - texlive-fonts-extra
-    - texlive-generic-extra
+  apt:
+    name:
+      - ghostscript 
+      - lmodern 
+      - texlive-fonts-recommended-doc 
+      - tex-gyre
+      - texlive-humanities-doc 
+      - texlive-latex-base-doc 
+      - texlive-latex-extra-doc
+      - prosper
+      - texlive-latex-recommended-doc 
+      - texlive-pictures-doc 
+      - prerex 
+      - texlive-publishers-doc 
+      - texlive-science-doc
+      - libfile-mimeinfo-perl 
+      - libnet-dbus-perl 
+      - libx11-protocol-perl 
+      - x11-utils 
+      - x11-xserver-utils
+      - texlive-lang-greek
+      - fonts-cmu
+      - fonts-sil-charis
+      - texlive-fonts-extra
+      - texlive-generic-extra
+    state: present
+    install_recommends: no
   tags:
     - texlive
     - packages
 
 - name: ensure some texlive recommandations are installed for jessie
-  apt: name={{ item }} state=latest install_recommends=no
-  with_items:
-    - fonts-droid 
+  apt: name=fonts-droid state=latest install_recommends=no
   when: ansible_distribution_release == "jessie"
   tags:
     - texlive
     - packages
 
 - name: ensure some texlive recommandations are installed for stretch
-  apt: name={{ item }} state=latest install_recommends=no
-  with_items:
-    - fonts-droid-fallback
+  apt: name=fonts-droid-fallback state=latest install_recommends=no
   when: ansible_distribution_release == "stretch"
   tags:
     - texlive