diff --git a/src/main/java/org/olat/course/archiver/ExportOptionsController.java b/src/main/java/org/olat/course/archiver/ExportOptionsController.java
index b9dcb5e1a7048a2de4e404e3da8c841fc5e032fa..4d1bec0521a663e18e1a8afacee5143b64e99329 100644
--- a/src/main/java/org/olat/course/archiver/ExportOptionsController.java
+++ b/src/main/java/org/olat/course/archiver/ExportOptionsController.java
@@ -64,7 +64,7 @@ public class ExportOptionsController extends FormBasicController {
 		optionKeys = new String[]{ITEMCOLS, POSCOL, POINTCOL, TIMECOLS};
 		optionVals = new String[] {
 				translate("form.itemcols"),
-				translate("form.poscol"),
+				translate("form.poscol.extra"),
 				translate("form.pointcol"),
 				translate("form.timecols")
 		};	
diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties
index 17e89f5a48b35d1c4215e87f540c520a4ca78446..8aa83f1ae92bd60a2c289a455b9b065198462c3f 100644
--- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties
@@ -115,4 +115,5 @@ table.action.select=Ausw\u00E4hlen
 table.header.node=Kursbaustein
 tool.name=Datenarchivierung
 wiki=Wikis
-form.title=Optionen einstellen:
\ No newline at end of file
+form.title=Optionen einstellen:
+form.poscol.extra=Gew\u00E4hlte Antwort(en) anzeigen (nur QTI 1.2)
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties
index 25132a299da4afa0f8a87312afb4ec0c2b139ab9..bb0583a443e485b1cd1180eb7016fcfc98282d0b 100644
--- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties
@@ -115,4 +115,5 @@ table.action.select=Select
 table.header.node=Course element
 tool.name=Archive tool
 wiki=Wikis
-form.title=Setup options:
\ No newline at end of file
+form.title=Setup options:
+form.poscol.extra=Display selected answer(s) (QTI 1.2 only)
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java
index 05e627a63983de9b43bcd26b9e545e05f1923d72..9ec8000b8c1ee6a6d61f74e8763ab9d27760fa98 100644
--- a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java
@@ -270,7 +270,7 @@ public class IQSELFCourseNode extends AbstractAccessableCourseNode implements Se
 				QTIExportManager qem = QTIExportManager.getInstance();
 				QTIExportFormatter qef = new QTIExportFormatterCSVType1(locale, "\t", "\"", "\r\n", false);
 				((QTIExportFormatterCSVType1)qef).setAnonymous(true);
-				if (options.getQtiExportItemFormatConfig() != null) {
+				if (options != null && options.getQtiExportItemFormatConfig() != null) {
 					Map<Class<?>, QTIExportItemFormatConfig> itemConfigs = new HashMap<>();
 					Class<?>[] itemTypes = new Class<?>[] {QTIExportSCQItemFormatConfig.class, QTIExportMCQItemFormatConfig.class,
 						QTIExportKPRIMItemFormatConfig.class, QTIExportFIBItemFormatConfig.class, QTIExportEssayItemFormatConfig.class};
diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
index 03f21f29f3d1b1ff8a084a6609522d9d116f533c..0e65b70e3d01e2d7971aa296d57ed75b32e2d73a 100644
--- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
@@ -684,7 +684,7 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements Pe
 				String shortTitle = getShortTitle();
 				QTIExportManager qem = QTIExportManager.getInstance();
 				QTIExportFormatter qef = new QTIExportFormatterCSVType1(locale, "\t", "\"", "\r\n", false);
-				if (options.getQtiExportItemFormatConfig() != null) {
+				if (options != null && options.getQtiExportItemFormatConfig() != null) {
 					Map<Class<?>, QTIExportItemFormatConfig> itemConfigs = new HashMap<>();
 					Class<?>[] itemTypes = new Class<?>[] {QTIExportSCQItemFormatConfig.class, QTIExportMCQItemFormatConfig.class,
 						QTIExportKPRIMItemFormatConfig.class, QTIExportFIBItemFormatConfig.class, QTIExportEssayItemFormatConfig.class};
diff --git a/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java b/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java
index 25e632a25d2ac35bdb4151e796e81683cc1a7975..fe5cd5148613f1f9f7814a17a8839206428d1a5f 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQEditReplaceWizard.java
@@ -63,7 +63,6 @@ import org.olat.ims.qti.export.QTIExportEssayItemFormatConfig;
 import org.olat.ims.qti.export.QTIExportFIBItemFormatConfig;
 import org.olat.ims.qti.export.QTIExportFormatter;
 import org.olat.ims.qti.export.QTIExportFormatterCSVType1;
-import org.olat.ims.qti.export.QTIExportFormatterCSVType2;
 import org.olat.ims.qti.export.QTIExportFormatterCSVType3;
 import org.olat.ims.qti.export.QTIExportItemFormatConfig;
 import org.olat.ims.qti.export.QTIExportKPRIMItemFormatConfig;
@@ -204,7 +203,8 @@ public class IQEditReplaceWizard extends WizardController {
 			if (courseNode instanceof IQTESTCourseNode) {
 				formatter = new QTIExportFormatterCSVType1(ureq.getLocale(), "\t", "\"", "\r\n", false);
 			} else if (courseNode instanceof IQSELFCourseNode) {
-				formatter = new QTIExportFormatterCSVType2(ureq.getLocale(), null, "\t", "\"", "\r\n", false);
+				formatter = new QTIExportFormatterCSVType1(ureq.getLocale(),"\t", "\"", "\r\n", false);
+				((QTIExportFormatterCSVType1)formatter).setAnonymous(true);
 			} else {
 				formatter = new QTIExportFormatterCSVType3(ureq.getLocale(), null, "\t", "\"", "\r\n", false);
 			}
diff --git a/src/main/java/org/olat/ims/qti/export/QTIArchiver.java b/src/main/java/org/olat/ims/qti/export/QTIArchiver.java
index 0d3c20272eabe46eee74e62fa3c2e740f16d35ba..43e299edec7b705d6ecc86a799bcb91db610656c 100644
--- a/src/main/java/org/olat/ims/qti/export/QTIArchiver.java
+++ b/src/main/java/org/olat/ims/qti/export/QTIArchiver.java
@@ -327,7 +327,8 @@ public class QTIArchiver {
 		if (courseNode instanceof IQTESTCourseNode){
 			frmtr = new QTIExportFormatterCSVType1(locale, se, em, ca, tagless);
 		} else if (courseNode instanceof IQSELFCourseNode){
-			frmtr = new QTIExportFormatterCSVType2(locale, null, se, em, ca, tagless);
+			frmtr = new QTIExportFormatterCSVType1(locale, se, em, ca, tagless);
+			((QTIExportFormatterCSVType1)frmtr).setAnonymous(true);
 		} else { // type == 3
 			frmtr = new QTIExportFormatterCSVType3(locale, null, se, em, ca, tagless);
 		}
diff --git a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java
index c78e12889acecd5763651da95430c8f7eb310362..24ea87f11e1298b5bf059bb835107cb6715ef2c3 100644
--- a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java
+++ b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType1.java
@@ -162,12 +162,18 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter {
 
 				if (qeif.getExportItemConfig(item).hasTimeCols()) {
 					// HeaderRow1
-					hR1.append(sep + sep);
+					hR1.append(sep);
+					if (!isAnonymous) {
+						hR1.append(sep);
+					}
+
 					// HeaderRow2
-					hR2.append(i);
-					hR2.append("_");
-					hR2.append(translator.translate("item.start"));
-					hR2.append(sep);
+					if (!isAnonymous) {
+						hR2.append(i);
+						hR2.append("_");
+						hR2.append(translator.translate("item.start"));
+						hR2.append(sep);
+					}
 					
 					hR2.append(i);
 					hR2.append("_");
@@ -231,10 +237,11 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter {
 		sb.append(sep);
 
 		// datatime
-		Date  date = set.getLastModified();
-		sb.append(Formatter.formatDatetime(date));
-		sb.append(sep);
-
+		if (!isAnonymous) {
+			Date date = set.getLastModified();
+			sb.append(Formatter.formatDatetime(date));
+			sb.append(sep);
+		}
 		Long assessDuration = set.getDuration();
 		// since there are resultsets created before alter table adding the field duration
 		if (assessDuration != null) {
@@ -275,12 +282,14 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter {
 				}
 				if (itemFormatConfig.hasTimeCols()) {
 					// startdatetime
-					if (eItem.getTimeStamp().getTime() > 0) {
-						sb.append(Formatter.formatDatetime(eItem.getTimeStamp()));
-					} else {
-						sb.append("n/a");
+					if (!isAnonymous) {
+						if (eItem.getTimeStamp().getTime() > 0) {
+							sb.append(Formatter.formatDatetime(eItem.getTimeStamp()));
+						} else {
+							sb.append("n/a");
+						}
+						sb.append(sep);
 					}
-					sb.append(sep);
 
 					// column duration
 					Long itemDuration = eItem.getDuration();
@@ -296,7 +305,12 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter {
 				// points
 				if (itemFormatConfig.hasPointCol()) sb.append(sep);
 				// startdatetime, column duration
-				if (itemFormatConfig.hasTimeCols()) sb.append(sep + sep);
+				if (itemFormatConfig.hasTimeCols()) {
+					sb.append(sep);
+					if (!isAnonymous) {
+						sb.append(sep);
+					}
+				}
 			}
 		}
 	}
@@ -465,7 +479,9 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter {
 		hr1Intro.append(sep);
 		hr1Intro.append(sep);
 		hr1Intro.append(sep);
-		hr1Intro.append(sep);
+		if (!isAnonymous) {
+			hr1Intro.append(sep);
+		}
 		hr1Intro.append(sep);
 		return hr1Intro.toString();//  + sep + sep + sep + sep + sep + sep + sep + sep + sep;
 	}
@@ -513,9 +529,11 @@ public class QTIExportFormatterCSVType1 extends QTIExportFormatter {
 		String ipAddress = translator.translate("column.header.ipaddress");
 		hr2Intro.append(ipAddress);
 		hr2Intro.append(sep);
-		String date = translator.translate("column.header.date");
-		hr2Intro.append(date);
-		hr2Intro.append(sep);
+		if (!isAnonymous) {
+			String date = translator.translate("column.header.date");
+			hr2Intro.append(date);
+			hr2Intro.append(sep);
+		}
 		String duration = translator.translate("column.header.duration");
 		hr2Intro.append(duration);
 		hr2Intro.append(sep);
diff --git a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java b/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java
deleted file mode 100644
index 57236395ac5226ef294a4216e4e023eeff0ac3ce..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/ims/qti/export/QTIExportFormatterCSVType2.java
+++ /dev/null
@@ -1,527 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.ims.qti.export;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.olat.core.logging.OLATRuntimeException;
-import org.olat.core.util.Formatter;
-import org.olat.core.util.filter.FilterFactory;
-import org.olat.ims.qti.editor.beecom.parser.ItemParser;
-import org.olat.ims.qti.export.helper.IdentityAnonymizerCallback;
-import org.olat.ims.qti.export.helper.QTIItemObject;
-
-/**
- * Initial Date: May 23, 2006 <br>
- * 
- * @author Alexander Schneider
- */
-public class QTIExportFormatterCSVType2 extends QTIExportFormatter {
-	private String	fileNamePrefix	= "SELF_";
-	private int		type			= 2;
-	// Delimiters and file name suffix for the export file
-	private String sep; // fields separated by
-	private String emb; // fields embedded by
-	private String car; // carriage return
-	// Author can export the mattext without HTML tags
-	// especially used for the results export of matrix questions created by QANT
-	private boolean	tagless;
-
-	// CELFI#107
-	private int		cut				= 30;
-	// CELFI#107 END
-
-	protected int	row_counter		= 1;
-	protected int	loop_counter	= 0;
-	protected Long	keyBefore		= null;
-
-	/**
-	 * @param locale
-	 * @param type
-	 * @param anonymizerCallback
-	 * @param delimiter
-	 * @param Map
-	 *            qtiExportFormatConfig with (QTIExportItemXYZ.class,IQTIExportItemFormatConfig)
-	 */
-	
-	public QTIExportFormatterCSVType2(Locale locale, IdentityAnonymizerCallback anonymizerCallback, String sep, String emb, String car, boolean tagless) {
-		super(locale, anonymizerCallback);
-		this.sep = sep;
-		this.emb = emb;
-		this.car = car;
-		this.tagless = tagless;
-	}
-	
-	public void openReport() {
-		if (qtiItemObjectList == null) { throw new OLATRuntimeException(null, "Can not format report when qtiItemObjectList is null", null); }
-
-		if (mapWithExportItemConfigs == null) {
-			// while deleting a selftest node the formatter has no config consiting of user input
-			setDefaultQTIItemConfigs();
-		}
-		
-		QTIExportItemFactory qeif = new QTIExportItemFactory(mapWithExportItemConfigs);
-		
-		// // // Preparing HeaderRow 1 and HeaderRow2
-		StringBuilder hR1 = new StringBuilder();
-		StringBuilder hR2 = new StringBuilder();
-		
-		int i = 1;
-		for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext();) {
-			QTIItemObject item = iter.next();
-
-			if (displayItem(qeif.getExportItemConfig(item))) {
-				hR1.append(emb);
-				hR1.append(escape(item.getItemTitle()));
-
-				// CELFI#107
-				String question = item.getQuestionText();
-				question = FilterFactory.getXSSFilter(-1).filter(question);
-				question = FilterFactory.getHtmlTagsFilter().filter(question);
-
-				if (question.length() > cut) {
-					question = question.substring(0, cut) + "...";
-				}
-				question = StringEscapeUtils.unescapeHtml(question);
-				hR1.append(": " + escape(question));
-				// CELFI#107 END
-
-				hR1.append(emb);
-
-				if (qeif.getExportItemConfig(item).hasResponseCols()) {
-					List<String> responseColumnHeaders = item.getResponseColumnHeaders();
-					for (Iterator<String> iterator = responseColumnHeaders.iterator(); iterator.hasNext();) {
-					  // HeaderRow1
-					  hR1.append(sep);				    
-					  // HeaderRow2
-						String columnHeader = iterator.next();
-						hR2.append(i);
-						hR2.append("_");
-						hR2.append(columnHeader);
-						hR2.append(sep);
-					}
-				}
-
-				if (qeif.getExportItemConfig(item).hasPositionsOfResponsesCol()) {
-					// HeaderRow1
-					hR1.append(sep);
-			    // HeaderRow2
-			    hR2.append(i);
-			    hR2.append("_");
-					hR2.append(translator.translate("item.positions"));
-					hR2.append(sep);
-				}
-
-				if (qeif.getExportItemConfig(item).hasPointCol()) {
-					// HeaderRow1
-					hR1.append(sep);
-				  // HeaderRow2
-					hR2.append(i);
-					hR2.append("_");
-					hR2.append(translator.translate("item.score"));
-					hR2.append(sep);
-				}
-
-				if (qeif.getExportItemConfig(item).hasTimeCols()) {
-					// HeaderRow1
-					hR1.append(sep + sep);
-					// HeaderRow2
-					hR2.append(i);
-					hR2.append("_");
-					hR2.append(translator.translate("item.start"));
-					hR2.append(sep);
-					
-					hR2.append(i);
-					hR2.append("_");
-					hR2.append(translator.translate("item.duration"));
-					hR2.append(sep);
-				}
-				i++;
-			}
-		}
-		// // // HeaderRow1Intro
-		sb.append(createHeaderRow1Intro());
-		
-		// // // HeaderRow1
-		sb.append(hR1.toString());
-		sb.append(car);
-		
-		// // // HeaderRow2Intro
-		sb.append(createHeaderRow2Intro());
-		
-		// // // HeaderRow2
-		sb.append(hR2.toString());
-		sb.append(car);
-	}
-
-	public void openResultSet(QTIExportSet set) {
-		float assessPoints = set.getScore();
-			
-		Long key = set.getIdentity().getKey();
-		if (!key.equals(keyBefore)) {
-			loop_counter++;
-			keyBefore = key;
-		}
-		if (anonymizerCallback == null) sb.append(row_counter);
-		else sb.append(anonymizerCallback.getAnonymizedUserName(set.getIdentity()));
-		sb.append(sep);
-		sb.append(loop_counter);
-		sb.append(sep);
-		sb.append(assessPoints);
-		sb.append(sep);
-		
-		// datatime
-		Date  date = set.getLastModified();
-		sb.append(Formatter.formatDatetime(date));
-		sb.append(sep);
-		
-		Long assessDuration = set.getDuration();
-		// since there are resultsets created before alter table adding the field duration
-		if (assessDuration != null) {
-			sb.append(Math.round(assessDuration.longValue() / 1000));
-		} else {
-			sb.append("n/a");
-		}
-		sb.append(sep);
-	}
-
-	public void visit(QTIExportItem eItem) {
-		List<String> responseColumns = eItem.getResponseColumns();
-		QTIExportItemFormatConfig itemFormatConfig = eItem.getConfig();
-
-		if (displayItem(itemFormatConfig)) {
-			if (itemFormatConfig.hasResponseCols()) {
-				for (Iterator<String> iter = responseColumns.iterator(); iter.hasNext();) {
-					String responseColumn = iter.next();
-					sb.append(emb);
-					sb.append(escape(responseColumn));
-					sb.append(emb);
-					sb.append(sep);
-				}
-			}
-
-			if (itemFormatConfig.hasPositionsOfResponsesCol()) {
-				sb.append(eItem.getPositionsOfResponses());
-				sb.append(sep);
-			}
-
-			if (eItem.hasResult()) {
-				if (itemFormatConfig.hasPointCol()) {
-					// points
-					sb.append(eItem.getScore());
-					sb.append(sep);
-				}
-				if (itemFormatConfig.hasTimeCols()) {
-					// startdatetime
-					if (eItem.getTimeStamp().getTime() > 0) {
-						sb.append(Formatter.formatDatetime(eItem.getTimeStamp()));
-					} else {
-						sb.append("n/a");
-					}
-					sb.append(sep);
-
-					// column duration
-					Long itemDuration = eItem.getDuration();
-					if (itemDuration != null) {
-						sb.append(itemDuration.longValue() / 1000);
-					} else {
-						sb.append("n/a");
-					}
-					sb.append(sep);
-				}
-			} else {
-				// points
-				if (itemFormatConfig.hasPointCol()) sb.append(sep);
-				// startdatetime, column duration
-				if (itemFormatConfig.hasTimeCols()) sb.append(sep + sep);
-			}
-		}
-	}
-
-	public void closeResultSet() {
-		sb.append(car);
-		row_counter++;
-	}
-	
-	public void closeReport() {
-		if (qtiItemObjectList == null) { throw new OLATRuntimeException(null, "Can not format report when qtiItemObjectList is null", null); }
-		String legend = translator.translate("legend");
-		sb.append(car + car);
-		sb.append(legend);
-		sb.append(car + car);
-		int y = 1;
-		for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext();) {
-			QTIItemObject element = iter.next();
-			
-			sb.append(element.getItemIdent());
-			sb.append(sep);
-			sb.append(emb);
-			sb.append(escape(element.getItemTitle()));
-			sb.append(emb);
-			sb.append(car);
-
-			sb.append(sep + sep);
-			sb.append("minValue");
-			sb.append(sep);
-			sb.append(element.getItemMinValue());
-			sb.append(car);
-
-			sb.append(sep + sep);
-			sb.append("maxValue");
-			sb.append(sep);
-			sb.append(element.getItemMaxValue());
-			sb.append(car);
-
-			sb.append(sep + sep);
-			sb.append("cutValue");
-			sb.append(sep);
-			sb.append(element.getItemCutValue());
-			sb.append(car);
-
-			// CELFI#107
-			sb.append(sep + sep + sep + sep);
-			String question = element.getQuestionText();
-			if (tagless) {
-				question = FilterFactory.getXSSFilter(-1).filter(question);
-				question = FilterFactory.getHtmlTagsFilter().filter(question);
-			}
-			question = StringEscapeUtils.unescapeHtml(question);
-			sb.append(question);
-			sb.append(car);
-			// CELFI#107 END
-
-			List<String> responseLabelMaterials = element.getResponseLabelMaterials();
-
-			for (int i = 0; i < element.getResponseIdentifier().size(); i++) {
-				sb.append(sep + sep);
-				sb.append(y);
-				sb.append("_");
-				sb.append(element.getItemType());
-				sb.append(i + 1);
-				sb.append(sep);
-				sb.append(element.getResponseIdentifier().get(i));
-				sb.append(sep);
-
-				if (responseLabelMaterials != null) {
-					String s = responseLabelMaterials.get(i);
-					s = StringEscapeUtils.unescapeHtml(s);
-					if (tagless) {
-						s = s.replaceAll("\\<.*?\\>", "");
-					}
-					sb.append(Formatter.stripTabsAndReturns(s));
-				}
-				sb.append(car);
-			}
-			y++;
-		}
-
-		sb.append(car + car);
-		sb.append("SCQ");
-		sb.append(sep);
-		sb.append("Single Choice Question");
-		sb.append(car);
-		sb.append("MCQ");
-		sb.append(sep);
-		sb.append("Multiple Choice Question");
-		sb.append(car);
-		sb.append("FIB");
-		sb.append(sep);
-		sb.append("Fill in the blank");
-		sb.append(car);
-		sb.append("ESS");
-		sb.append(sep);
-		sb.append("Essay");
-		sb.append(car);
-		sb.append("KPR");
-		sb.append(sep);
-		sb.append("Kprim (K-Type)");
-
-		sb.append(car + car);
-		sb.append("R:");
-		sb.append(sep);
-		sb.append("Radio button (SCQ)");
-		sb.append(car);
-		sb.append("C:");
-		sb.append(sep);
-		sb.append("Check box (MCQ or KPR)");
-		sb.append(car);
-		sb.append("B:");
-		sb.append(sep);
-		sb.append("Blank (FIB)");
-		sb.append(car);
-		sb.append("A:");
-		sb.append(sep);
-		sb.append("Area (ESS)");
-
-		sb.append(car + car);
-		sb.append("nx_Ry");
-		sb.append(sep);
-		sb.append("Radio Button y of SCQ x, e.g. 1_R1");
-		sb.append(car);
-		sb.append("x_Cy");
-		sb.append(sep);
-		sb.append("Check Box y of MCQ x or two Radio Buttons y of KPR x, e.g. 3_C2");
-		sb.append(car);
-		sb.append("x_By");
-		sb.append(sep);
-		sb.append("Blank y of FIB x, e.g. 17_B2");
-		sb.append(car);
-		sb.append("x_Ay");
-		sb.append(sep);
-		sb.append("Area y of ESS x, e.g. 4_A1");
-
-		sb.append(car + car);
-		sb.append("Kprim:");
-		sb.append(sep);
-		sb.append("'+' = yes");
-		sb.append(sep);
-		sb.append("'-' = no");
-		sb.append(sep);
-		sb.append("'.' = no answer");
-		sb.append(sep);
-	}
-
-	public String getReport() {
-		return sb.toString();
-	}
-
-	private String createHeaderRow1Intro() {
-		return sep + sep + sep + sep + sep;
-	}
-
-	/**
-	 * Creates header line for all types
-	 * 
-	 * @param theType
-	 * @return header line for download
-	 */
-	private String createHeaderRow2Intro() {
-		
-		StringBuilder hr2Intro = new StringBuilder(); 
-
-		// header for personalized download (iqtest)
-		String sequentialNumber = translator.translate("column.header.seqnum");
-		
-		String num = translator.translate("column.header.number");
-		String assessPoint = translator.translate("column.header.assesspoints");
-		String date = translator.translate("column.header.date");
-		String duration = translator.translate("column.header.duration");
-		
-		hr2Intro.append(sequentialNumber);
-		hr2Intro.append(sep);
-		hr2Intro.append(num);
-		hr2Intro.append(sep);
-		hr2Intro.append(assessPoint);
-		hr2Intro.append(sep);
-		hr2Intro.append(date);
-		hr2Intro.append(sep);
-		hr2Intro.append(duration);
-		hr2Intro.append(sep);
-		return hr2Intro.toString();
-	}
-
-	public void setKeyBefore(Long keyBefore) {
-		this.keyBefore = keyBefore;
-	}
-
-	public String getFileNamePrefix() {
-		return fileNamePrefix;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.olat.ims.qti.export.QTIExportFormatter#getType()
-	 */
-	public int getType() {
-		return this.type;
-	}
-
-	private boolean displayItem(QTIExportItemFormatConfig c) {
-		return !(!c.hasResponseCols() && !c.hasPointCol() && !c.hasTimeCols() && !c.hasPositionsOfResponsesCol());
-	}
-
-	private String escape(String s) {
-		// escape " with "" - strange but seems the way to go with csv files
-		return s.replaceAll(emb, emb + emb);
-	}
-
-	private void setDefaultQTIItemConfigs() {
-		Map<Class<?>, QTIExportItemFormatConfig> itConfigs = new HashMap<>();
-  	
-		for (Iterator<QTIItemObject> iter = qtiItemObjectList.iterator(); iter.hasNext();) {
-			QTIItemObject item = iter.next();
-			if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_SCQ)) {
-				if (itConfigs.get(QTIExportSCQItemFormatConfig.class) == null) {
-					QTIExportSCQItemFormatConfig confSCQ = new QTIExportSCQItemFormatConfig(true, false, false, false);
-					itConfigs.put(QTIExportSCQItemFormatConfig.class, confSCQ);
-				}
-			} else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_MCQ)) {
-				if (itConfigs.get(QTIExportMCQItemFormatConfig.class) == null) {
-					QTIExportMCQItemFormatConfig confMCQ = new QTIExportMCQItemFormatConfig(true, false, false, false);
-					itConfigs.put(QTIExportMCQItemFormatConfig.class, confMCQ);
-				}
-			} else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_KPRIM)) {
-				if (itConfigs.get(QTIExportKPRIMItemFormatConfig.class) == null) {
-					QTIExportKPRIMItemFormatConfig confKPRIM = new QTIExportKPRIMItemFormatConfig(true, false, false, false);
-					itConfigs.put(QTIExportKPRIMItemFormatConfig.class, confKPRIM);
-				}
-			} else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_ESSAY)) {
-				if (itConfigs.get(QTIExportEssayItemFormatConfig.class) == null) {
-					QTIExportEssayItemFormatConfig confEssay = new QTIExportEssayItemFormatConfig(true, false);
-					itConfigs.put(QTIExportEssayItemFormatConfig.class, confEssay);
-				}
-			} else if (item.getItemIdent().startsWith(ItemParser.ITEM_PREFIX_FIB)) {
-				if (itConfigs.get(QTIExportFIBItemFormatConfig.class) == null) {
-					QTIExportFIBItemFormatConfig confFIB = new QTIExportFIBItemFormatConfig(true, false, false);
-					itConfigs.put(QTIExportFIBItemFormatConfig.class, confFIB);
-				}
-			}
-			// if cannot find the type via the ItemParser, look for the QTIItemObject type
-			else if (item.getItemType().equals(QTIItemObject.TYPE.A)) {
-				QTIExportEssayItemFormatConfig confEssay = new QTIExportEssayItemFormatConfig(true, false);
-				itConfigs.put(QTIExportEssayItemFormatConfig.class, confEssay);
-			} else if (item.getItemType().equals(QTIItemObject.TYPE.R)) {
-				QTIExportSCQItemFormatConfig confSCQ = new QTIExportSCQItemFormatConfig(true, false, false, false);
-				itConfigs.put(QTIExportSCQItemFormatConfig.class, confSCQ);
-			} else if (item.getItemType().equals(QTIItemObject.TYPE.C)) {
-				QTIExportMCQItemFormatConfig confMCQ = new QTIExportMCQItemFormatConfig(true, false, false, false);
-				itConfigs.put(QTIExportMCQItemFormatConfig.class, confMCQ);
-			} else if (item.getItemType().equals(QTIItemObject.TYPE.B)) {
-				QTIExportFIBItemFormatConfig confFIB = new QTIExportFIBItemFormatConfig(true, false, false);
-				itConfigs.put(QTIExportFIBItemFormatConfig.class, confFIB);
-			} else {
-				throw new OLATRuntimeException(null, "Can not resolve QTIItem type='" + item.getItemType() + "'", null);
-			}
-		}
-		mapWithExportItemConfigs = itConfigs;
-	}
-}