diff --git a/registration-system/view/signups/game1/js/achievements.js b/registration-system/view/signups/game1/js/achievements.js
index 80d82609d7cced4315809e15906f263de839b8ed..652c34902b4308c06154acc62f190187bf97149a 100644
--- a/registration-system/view/signups/game1/js/achievements.js
+++ b/registration-system/view/signups/game1/js/achievements.js
@@ -1,72 +1,49 @@
 function Achievements() {
     this.achievements = {
-        'started_game': {
-            message: "Bestes Anmeldesystem gestartet"
-        },
-        'first_step': {
-            message: "Erster Schritt getan"
-        }
+        'started_game': 'Bestes Anmeldesystem gestartet',
+        'first_step': 'Erster Schritt getan',
+        // TODO: add more!
+        'achievement42': 'You just found the answer to everything!'
     };
     this.achievedAchievements = [];
 
-    this.logElem        = null;
-    this.statusBarElem  = null;
-    this.statusTextElem = null;
+    this.domElems = null;
 
     this.triggerAchievement('started_game');
 }
+Achievements.prototype.numTotalAchievements = function() {
+    return Object.keys(this.achievements).length;
+};
 
-Achievements.prototype.getLogElem = function () {
-    if(!this.logElem)
-        this.logElem = document.getElementById('achievement-log');
-    return this.logElem;
+Achievements.prototype.numCompletedAchievements = function() {
+    return Object.keys(this.achievedAchievements).length;
 };
 
-Achievements.prototype.getStatusBarElem = function () {
-    if(!this.statusBarElem)
-        this.statusBarElem = document.getElementById('achievement-progress').getElementsByClassName('status-bar-bar')[0];
-    return this.statusBarElem;
+Achievements.prototype.initDomElems = function () {
+    this.domElems = {
+        'log':        document.getElementById('achievement-log'),
+        'statusBar':  document.getElementById('achievement-progress').getElementsByClassName('status-bar-bar')[0],
+        'statusText': document.getElementById('achievement-progress').getElementsByClassName('status-bar-text')[0]
+    };
 };
 
-Achievements.prototype.getStatusTextElem = function () {
-    if(!this.statusTextElem)
-        this.statusTextElem = document.getElementById('achievement-progress').getElementsByClassName('status-bar-text')[0];
-    return this.statusTextElem;
+Achievements.prototype.getDomElem = function (elem) {
+    if(!this.domElems) this.initDomElems();
+    return this.domElems[elem];
 };
 
 Achievements.prototype.updateStatusBar = function () {
     var percent = Math.ceil((this.numCompletedAchievements() / this.numTotalAchievements())*100);
-    this.getStatusBarElem().style.width = percent + '%';
+    this.getDomElem('statusBar').style.width = percent + '%';
 };
 
 Achievements.prototype.updateStatusText = function () {
     var text = this.numCompletedAchievements() + '/' + this.numTotalAchievements();
-    this.getStatusTextElem().innerText = text;
-};
-
-Achievements.prototype.numTotalAchievements = function() {
-    return Object.keys(this.achievements).length;
-};
-
-Achievements.prototype.numCompletedAchievements = function() {
-    return Object.keys(this.achievedAchievements).length;
-};
-
-/**
- * returns status about a specific achievementId
- * @param achievementId
- * @returns {number} -1 = does not exist, 0 = achievable, 1 = already completed
- */
-Achievements.prototype.achievementStatus = function(achievementId) {
-    if (!this.achievements[achievementId])
-        return -1;
-    if (!this.achievedAchievements.indexOf(achievementId) >= 0)
-        return 0;
-    return 1;
+    this.getDomElem('statusText').innerText = text;
 };
 
 Achievements.prototype.logMessage = function (message) {
-    var list = this.getLogElem();
+    var list = this.getDomElem('log');
 
     var newElem = document.createElement('li');
     var newElemText = document.createTextNode(message);
@@ -75,20 +52,18 @@ Achievements.prototype.logMessage = function (message) {
     list.insertBefore(newElem, list.childNodes[0]);
 };
 
-Achievements.prototype.getAchievementMessage = function (achievementId) {
-    return this.achievements[achievementId].message;
-};
-
 Achievements.prototype.triggerAchievement = function (achievementId) {
-    var status = this.achievementStatus(achievementId);
-    if (status === 0) {
+    if (!this.achievements[achievementId]){
+        console.error("No such achievement: " + achievementId);
+    }
+    else if (!this.achievedAchievements.indexOf(achievementId) >= 0) {
         this.achievedAchievements.push(achievementId);
         this.updateStatusBar();
         this.updateStatusText();
-        this.logMessage(this.getAchievementMessage(achievementId));
+        this.logMessage(this.achievements[achievementId]);
     }
-    else if (status === -1)
-        console.error("No such achievement: " + achievementId);
     else
         console.warn("Achievement already achieved: " + achievementId);
+
+    if (this.numCompletedAchievements() === 42 ) this.triggerAchievement('achievement42')
 };
\ No newline at end of file