diff --git a/common/defaults/main.yml b/common/defaults/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7bf674bb536d070a306c7bdf13bda43cc91ed808
--- /dev/null
+++ b/common/defaults/main.yml
@@ -0,0 +1,5 @@
+---
+# file: roles/common/defaults/main.yml
+
+apt_use_updates: yes
+apt_use_backports: yes
diff --git a/common/files/sources.list-jessie b/common/files/sources.list-jessie
deleted file mode 100644
index 3a6e6da143bc55c6709669b149dbe3cd7de79a9b..0000000000000000000000000000000000000000
--- a/common/files/sources.list-jessie
+++ /dev/null
@@ -1,13 +0,0 @@
-deb http://ftp.halifax.rwth-aachen.de/debian/ jessie main
-deb-src http://ftp.halifax.rwth-aachen.de/debian/ jessie main
-
-deb http://security.debian.org/ jessie/updates main
-deb-src http://security.debian.org/ jessie/updates main
-
-# jessie-updates, previously known as 'volatile'
-deb http://ftp.halifax.rwth-aachen.de/debian/ jessie-updates main
-deb-src http://ftp.halifax.rwth-aachen.de/debian/ jessie-updates main
-
-# jessie-backports, previously on backports.debian.org
-deb http://ftp.halifax.rwth-aachen.de/debian/ jessie-backports main
-deb-src http://ftp.halifax.rwth-aachen.de/debian/ jessie-backports main
diff --git a/common/files/sources.list-stretch b/common/files/sources.list-stretch
deleted file mode 100644
index 2f37e7d71040bd542b6c1a9071e75965df84e378..0000000000000000000000000000000000000000
--- a/common/files/sources.list-stretch
+++ /dev/null
@@ -1,13 +0,0 @@
-deb http://ftp.halifax.rwth-aachen.de/debian/ stretch main
-deb-src http://ftp.halifax.rwth-aachen.de/debian/ stretch main
-
-deb http://security.debian.org/ stretch/updates main
-deb-src http://security.debian.org/ stretch/updates main
-
-# stretch-updates, previously known as 'volatile'
-deb http://ftp.halifax.rwth-aachen.de/debian/ stretch-updates main
-deb-src http://ftp.halifax.rwth-aachen.de/debian/ stretch-updates main
-
-# stretch-backports, previously on backports.debian.org
-deb http://ftp.halifax.rwth-aachen.de/debian/ stretch-backports main
-deb-src http://ftp.halifax.rwth-aachen.de/debian/ stretch-backports main
diff --git a/common/tasks/repositories.yml b/common/tasks/repositories.yml
index 54dc5e3133a05c4937ce3ba67ec483e5faa29dff..1923ed5cb9359623207a2cc835b03e64adaff5e9 100644
--- a/common/tasks/repositories.yml
+++ b/common/tasks/repositories.yml
@@ -2,47 +2,27 @@
 # file: roles/common/tasks/repositories.yml
 
 - name: provide default sources.list
-  copy: src="sources.list-{{debian_version}}" dest=/etc/apt/sources.list owner=root group=root mode=0644
+  template:
+    src: sources.list
+    dest: /etc/apt/sources.list
+    owner: root
+    group: root
+    mode: 0644
   tags:
     - packages
     - repos
 
-- name: add contrib and non-free
-  apt_repository: repo='deb http://ftp.halifax.rwth-aachen.de/debian {{debian_version}} contrib non-free' state=present
+- name: remove old sources
+  file:
+    name: "/etc/apt/sources.list.d/{{item}}.list"
+    state: absent
+  with_items:
+    - ftp_halifax_rwth_aachen_de_debian
+    - security_debian_org
   tags:
     - packages
     - repos
-
-- name: add contrib security
-  apt_repository: repo='deb http://security.debian.org/ {{debian_version}}/updates contrib' state=present
-  tags:
-    - packages
-    - repos
-
-- name: add contrib and non-free updates
-  apt_repository: repo='deb http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}}-updates contrib non-free' state=present
-  tags:
-    - packages
-    - repos
-
-- name: add contrib and non-free source
-  apt_repository: repo='deb-src http://ftp.halifax.rwth-aachen.de/debian {{debian_version}} contrib non-free' state=present
-  tags:
-    - packages
-    - repos
-
-- name: add contrib security source
-  apt_repository: repo='deb-src http://security.debian.org/ {{debian_version}}/updates contrib' state=present
-  tags:
-    - packages
-    - repos
-
-- name: add contrib and non-free updates source
-  apt_repository: repo='deb-src http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}}-updates contrib non-free' state=present
-  tags:
-    - packages
-    - repos
-  
+ 
 - name: remove unused packages
   command: apt-get autoremove -y
   tags:
diff --git a/common/templates/sources.list b/common/templates/sources.list
new file mode 100644
index 0000000000000000000000000000000000000000..9624c182532e8e66a33458f5f3e7b27c449235d8
--- /dev/null
+++ b/common/templates/sources.list
@@ -0,0 +1,15 @@
+deb http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}} main contrib non-free
+deb-src http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}} main contrib non-free
+
+deb http://security.debian.org/ {{debian_version}}/updates main contrib non-free
+deb-src http://security.debian.org/ {{debian_version}}/updates main contrib non-free
+
+{% if apt_use_updates %}
+deb http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}}-updates main contrib non-free
+deb-src http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}}-updates main contrib non-free
+{% endif %}
+
+{% if apt_use_backports %}
+deb http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}}-backports main contrib non-free
+deb-src http://ftp.halifax.rwth-aachen.de/debian/ {{debian_version}}-backports main contrib non-free
+{% endif %}