diff --git a/files/tal/on_update.sh b/files/tal/on_update.sh
index 115437173bd8f5504fc59e74cab125346759ba38..aaca909fd01301423758b106a1b6703b6e8467a4 100644
--- a/files/tal/on_update.sh
+++ b/files/tal/on_update.sh
@@ -1,5 +1,7 @@
 #!/usr/bin/bash
 
+python3 -m pip install --user -r scripts/requirements.txt
+
 cd source
 
 sed -i 's|url = \.\./database|url = https://oauth2:glpat-WeW_ytbQ83JMs2UnQmhe@gitlab.liu.se/upp-aes/database|' .gitmodules
diff --git a/files/tal/tal-cli b/files/tal/tal-cli
index 6e91c37e005604be48286c128bf8f12dbacb030a..5cc12372150a75436f196ac5d275e5cf530b7d32 100644
--- a/files/tal/tal-cli
+++ b/files/tal/tal-cli
@@ -1,3 +1,3 @@
 #!/usr/bin/bash
 
-exec sudo -u examadm /home/examadm/tal-cli/tal "$@"
+exec sudo -u examadm /home/examadm/tal-cli/scripts/tal-cli.py "$@"
diff --git a/files/tal/tal-export b/files/tal/tal-export
new file mode 100644
index 0000000000000000000000000000000000000000..2b8dcbb83a7b817847d20e172f034a6731c95101
--- /dev/null
+++ b/files/tal/tal-export
@@ -0,0 +1,3 @@
+#!/usr/bin/bash
+
+exec sudo -u examadm /home/examadm/tal-cli/scripts/tal-export.py "$@"
diff --git a/manifests/aes_sw.pp b/manifests/aes_sw.pp
index d6be61e81a100f456a524671b3254b22719dfa21..dd2f7fa46e35aa07e55c43c4c5f969a8989be08a 100644
--- a/manifests/aes_sw.pp
+++ b/manifests/aes_sw.pp
@@ -18,7 +18,7 @@ class aes::aes_sw {
     managehome => false,
     membership => inclusive,
     system     => true,
-    shell      => '/sbin/nologin',
+    shell      => '/bin/bash',
   }
 
   file { $examadm_home:
@@ -28,6 +28,23 @@ class aes::aes_sw {
     group  => $examadm_group,
   }
 
+  file { "${examadm_home}/.ssh":
+    ensure => directory,
+    mode   => '0700',
+    owner  => $examadm_user,
+    group  => $examadm_group,
+  }
+
+  file { "${examadm_home}/.ssh/authorized_keys":
+    ensure  => file,
+    mode   => '0600',
+    owner  => $examadm_user,
+    group  => $examadm_group,
+    content => @(SSHPUBKEY),
+command="/home/examadm/bin/tal-export --format ics --lookback 90 --lookahead 180",no-pty,no-user-rc,no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJW4LP0av20r7lPXNgsftF9oaAXK41AvHyuHwybciZC/QBfTcmYif83563cTg0OzR/p+OSobiDM0odaaFYtP/8xbuVRz87X5bGYm2m8yHHqPxobHkT5g/faMkl9Fef+Al4EsT5tiaYMOhG2lj8XRYuwAb7qjoz3FFbs8TEPE7Sv+4BUCCH94taCuNYLXSxN1EXvw7VW6Ld5QXRFP53l2QUeTqE9oSii3BVrXlqqrLvNV/7nwdwyse4uhff4QrM9o4oc9FaQr8PLlPGxdlbSfIQJMVzHGpeDu0WLw+NqtLO1hsdlvQm7GrT/v8N7GJNKlsvhwnwUuMhTrB0yPMbbub1 klaar36@upp
+    | SSHPUBKEY
+  }
+
   file { '/etc/systemd/system/aes_login.service':
     ensure  => file,
     owner   => root,
diff --git a/manifests/autocorr.pp b/manifests/autocorr.pp
deleted file mode 100644
index 937f778b38e3abcab7762b0db5ed6ba5962f62c4..0000000000000000000000000000000000000000
--- a/manifests/autocorr.pp
+++ /dev/null
@@ -1,38 +0,0 @@
-class aes::autocorr {
-
-  $autocorr_user = autocorr
-  $autocorr_group = $autocorr_user
-  $autocorr_home = "/home/${autocorr_user}"
-
-  user { 'autocorr' :
-    ensure     => present,
-    managehome => false,
-    membership => inclusive,
-    system     => true,
-    shell      => '/bin/bash',
-  }
-
-  file { $autocorr_home:
-    ensure => directory,
-    mode   => '0755',
-    owner  => $autocorr_user,
-    group  => $autocorr_group,
-  }
-
-  file { "${autocorr_home}/.ssh":
-    ensure => directory,
-    mode   => '0700',
-    owner  => $autocorr_user,
-    group  => $autocorr_group,
-  }
-
-  file { "${autocorr_home}/.ssh/authorized_keys":
-    ensure  => file,
-    mode   => '0600',
-    owner  => $autocorr_user,
-    group  => $autocorr_group,
-    content => @(SSHPUBKEY),
-command="if [[ \"$SSH_ORIGINAL_COMMAND\" =~ ^scp[[:space:]]-f[[:space:]]/home/examadm/Version-3.1/exam/[[:space:]0-9a-zA-Z_/.-]*$ ]]; then $SSH_ORIGINAL_COMMAND; else >&2 echo \"ERROR Access Denied ('$SSH_ORIGINAL_COMMAND')\"; fi",no-pty,no-user-rc,no-port-forwarding,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCu/so6GPeUOpK0Zeiv8pM4UF4BAGnbjc92rYJP7PH2tnCvzTcj7Zx5fw6oyoFPw7SJ21ybIYHr1Eef7LsfJc6lOx/xNm8XABhOJw7Gy12WnjRF9SmsT7+YqJDvDOeN89PvzmHNdhpCerpdhDGvAKu2MjP2fAEW0eIgHWYfzFwQxXqfsEdKYAtIx0v/VTLxFjtZOz5PQGAPR28NZkffMt1ePaAO5WUwjkxcyIbrtrOWWYDtqa9G7gTwgdf7m9IG69G6sqKGzyZrfd0nrpMmtWmX6/9bWwUk1ADaLdEFiupsZ9k+QsLB7/v7fxzbPD61yAJ75JUecghlXFJ4ob9OsmPz torjo@upp
-    | SSHPUBKEY
-  }
-}
diff --git a/manifests/init.pp b/manifests/init.pp
index 9efa2222aba90ff202a9d4ed3e515fa56fe58252..4165103fac70334202fbf9be7a4e0a2972615cca 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -8,7 +8,6 @@ class aes {
   include aes::broker
   include aes::auth
   include aes::auth_keydb
-  include aes::autocorr
   include liurepo::centos_sclo_rh
 
   package {
diff --git a/manifests/tal_cli.pp b/manifests/tal_cli.pp
index 8ae2468ea6344725252a53b41704877d59132620..dfc6b2c937e9d8bd4fce3290d67e9a0d1e67d164 100644
--- a/manifests/tal_cli.pp
+++ b/manifests/tal_cli.pp
@@ -17,6 +17,14 @@ class aes::tal_cli(
     source => "puppet:///modules/${module_name}/tal/tal-cli",
   }
 
+  file { '/home/examadm/bin/tal-export' :
+    ensure => file,
+    owner  => examadm,
+    group  => examadm,
+    mode   => '0755',
+    source => "puppet:///modules/${module_name}/tal/tal-export",
+  }
+
   file { '/home/examadm/tal-cli/.tal' :
     ensure  => file,
     owner   => examadm,