diff --git a/cronjob b/cronjob
new file mode 100644
index 0000000..40ff17e
--- /dev/null
+++ b/cronjob
@@ -0,0 +1 @@
+@reboot root /var/lib/{{ ansible_local.domain.domainfull }}/bin/paperms.sh &>> /var/log/paperms.log
diff --git a/logrotate b/logrotate
new file mode 100644
index 0000000..0aae171
--- /dev/null
+++ b/logrotate
@@ -0,0 +1,7 @@
+/var/log/paperms.log {
+  rotate 7
+  daily
+  compress
+  missingok
+  notifempty
+}
diff --git a/paperms.sh b/paperms.sh
new file mode 100644
index 0000000..c7dfb72
--- /dev/null
+++ b/paperms.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# Fixing base variables
+basedir=/var/lib/{{ ansible_local.domain.domainfull }}
+
+# Making sure destination folder exists.
+/usr/bin/install -d -o root -g users ${basedir}/bin
+
+# Update this script itself
+/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/paperms.sh -O ${basedir}/bin/paperms.sh
+/bin/chown root:users ${basedir}/bin/paperms.sh
+/bin/chmod a+x ${basedir}/bin/paperms.sh
+
+# Updating cronjob
+/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/cronjob -O /etc/cron.d/paperms
+/bin/chown root:root /etc/cron.d/paperms
+/bin/chmod 0644 /etc/cron.d/paperms
+
+# Removing old versions of the cronjob
+rm -f /etc/cron.d/pulseaudio-perms
+
+# Updating logrotate
+/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/logrotate -O /etc/logrotate.d/paperms
+/bin/chown root:root /etc/logrotate.d/paperms
+/bin/chmod 0644 /etc/logrotate.d/paperms
+
+# Updating updategrp.py
+/usr/bin/wget -q http://{{ ansible_local.domain.serverfqdn }}/ks/preseed/paperms/updategrp.py -O ${basedir}/bin/updategrp.py
+/bin/chown root:users ${basedir}/bin/updategrp.py
+/bin/chmod a+x ${basedir}/bin/updategrp.py
+
+# Main part: run updategrp.py
+/usr/bin/python2 ${basedir}/bin/updategrp.py "domain users" "pulse"
+/usr/bin/python2 ${basedir}/bin/updategrp.py "domain users" "pulse-access"
diff --git a/pulseaudiomgr.py b/updategrp.py
similarity index 88%
rename from pulseaudiomgr.py
rename to updategrp.py
index f44df8c..4c0492d 100644
--- a/pulseaudiomgr.py
+++ b/updategrp.py
@@ -1,5 +1,6 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
+from __future__ import print_function
 import grp
 import re
 from subprocess import check_output
@@ -30,12 +31,12 @@ class UpdateGrp:
                     # If to_add is not empty, add each element to group
                     if len(self.to_add) > 0:
                         for user in self.to_add:
-                            print(check_output(["gpasswd", "-a", user, self.rightname]))
+                            print(check_output(["gpasswd", "-a", user, self.rightname]), end='')
 
                     # If to_remove is not empty, remove each element to group
                     if len(self.to_remove) > 0:
                         for user in self.to_remove:
-                            print(check_output(["gpasswd", "-d", user, self.rightname]))
+                            print(check_output(["gpasswd", "-d", user, self.rightname]), end='')
 
     def update_lhs(self):
         """Updates the LHS group members to be equal to the RHS group members."""
@@ -46,26 +47,27 @@ class UpdateGrp:
                     # If to_remove is not empty, add each element to group
                     if len(self.to_remove) > 0:
                         for user in self.to_remove:
-                            print(check_output(["gpasswd", "-a", user, self.leftname]))
+                            print(check_output(["gpasswd", "-a", user, self.leftname]), end='')
 
                     # If to_add is not empty, remove each element to group
                     if len(self.to_add) > 0:
                         for user in self.to_add:
-                            print(check_output(["gpasswd", "-d", user, self.leftname]))
+                            print(check_output(["gpasswd", "-d", user, self.leftname]), end='')
 
 
     def modprint(self):
         """Debug function to print only modifications."""
-        print("To add:")
+        print("To add: ", end='')
         print(self.to_add)
-        print("To remove:")
+        print("To remove: ", end='')
         print(self.to_remove)
 
 # When run interactively
 if __name__ == '__main__':
     # If the first argument is '--help' or '-h', or number of arguments less than 1 and more than 2, print help.
     if len(argv) < 2 or len(argv) > 3 or argv[1] == '--help' or argv[1] == '-h':
-        print("Usage: %s <group1> <group2>" % argv[0])
+        print("Usage: %s <LHSgroup> <RHSgroup>" % argv[0])
+        print("Aligns RHS group members as LHS.")
     
     else:
         updgrp = UpdateGrp(argv[1], argv[2])