diff --git a/hallgrim/parser.py b/hallgrim/parser.py
index 0ad49d033c7b36da907f69cd1c0d2b02bab24c09..641149780b7f4e0a722a61095519c08a9eb5e013 100644
--- a/hallgrim/parser.py
+++ b/hallgrim/parser.py
@@ -110,9 +110,9 @@ def gap_parser(task):
     final = []
     for s in m:
         lines = s.strip().split('\n')
-        regex = re.compile('\[(\d|X| )\]\s+([\w\W]+)', re.MULTILINE)
+        regex = re.compile('\[(([0-9]*[.])?[0-9]+| )\]\s?([\w\W]+)', re.MULTILINE)
         parse = [re.search(regex, line).groups() for line in lines]
-        final.append([(text.strip(), float(points) if not points == ' ' else 0) for points, text in parse])
+        final.append([(text.strip(), float(points) if not points == ' ' else 0) for points, _, text in parse])
 
     sep = '  !"§$%&/(XCVBNM;  '
     no_gaps   = re.sub(r, sep, task)
diff --git a/scripts/originale_kopien.py b/scripts/originale_kopien.py
index cf0321460b64a9a07ee0f82175a2d14c4765073c..09e87e08c7628d1903b85b3e4fe038c8a8f1e4be 100644
--- a/scripts/originale_kopien.py
+++ b/scripts/originale_kopien.py
@@ -1,7 +1,7 @@
 meta = {
     'author': 'Jan Maximilian Michal',
     'title': 'Originale Kopien? (I1-ID: 0c05by80syg0)',
-    'type': 'multiple choice',
+    'type': 'gap',
     'points': 0.5, # per correct choice
 }
 
@@ -11,23 +11,30 @@ vom Typ `String`. `a`, `b`, `c` und `d` sind bereits korrekt mit Zeichenfolgen
 der Länge 2 initialisiert (d.h. die jeweiligen Felder/Strings belegen
 Speicherplatz und man kann auf ihre Inhalte zugreifen). Welcher Code ist
 geeignet, um festzustellen, ob die in a und b bzw. in c und d gespeicherten
-Zeichenfolgen gleich sind? """
+Zeichenfolgen gleich sind?
+
+* `if (a == b) ...` [select][ ]geeignet\n[0.5]ungeeignet[/select]
+* `if (a.equals(b)) ...` [select][ ]geeignet\n[0.5]ungeeignet[/select]
+* `if (a[0] == b[0] || a[1] == b[1]) ...` [select][ ]geeignet\n[0.5]ungeeignet[/select]
+* `if (a[0] == b[0] && a[1] == b[1]) ...` [select][0.5]geeignet\n[ ]ungeeignet[/select]
+* `if (c == d) ...` [select][ ]geeignet\n[0.5]ungeeignet[/select]
+* `if (c.equals(d)) ...` [select][0.5]geeignet\n[ ]ungeeignet[/select]
+* `if (c.compareTo(d) == 0) ...` [select][0.5]geeignet\n[ ]ungeeignet[/select]
+* `if (c[0] == d[0] && c[1] == d[1]) ...` [select][ ]geeignet\n[0.5]ungeeignet[/select]
+"""
 
 # Antworten bitte aus drop-down-Menü wählen lassen:
 # Auswahl jeweils geeignet/nicht geeignet
 
-choices = """
-[ ] `if (a == b) ...`
-[ ] `if (a.equals(b)) ...`
-[ ] `if (a[0] == b[0] || a[1] == b[1]) ...`
-[X] `if (a[0] == b[0] && a[1] == b[1]) ...`
-[ ] `if (c == d) ...`
-[X] `if (c.equals(d)) ...`
-[X] `if (c.compareTo(d) == 0) ...`
-[ ] `if (c[0] == d[0] && c[1] == d[1]) ...`
-"""
 
 feedback = """
 
+Wichtig ist darauf zu achten, dass Objekte vom Typ String spezifische Methoden
+exportieren, die das vergleichen oder bearbeiten von Zeichenketten erlauben.
+Einfache `char[]` Arrays erlauben das nicht.
+
+Da der Objekte vom Typ String jedoch `char` Arrays enthalten ist es möglich
+über Indizierung den Vergleich 'per Hand' durchzuführen.
+
 """