diff --git a/pom.xml b/pom.xml
index efbded5bf8e481802d87cf9aafc9317a6d01ab91..650dca07c00beac756f3fed48bdf93ef0618f3a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2087,7 +2087,7 @@
 		<dependency>
 			<groupId>org.openolat.imscp</groupId>
 			<artifactId>manifest</artifactId>
-			<version>1.4.1</version>
+			<version>1.4.3</version>
 		</dependency>
 		<dependency>
 			<groupId>com.rometools</groupId>
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemMetadata.java b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemMetadata.java
index e4b529267b07240cd179b535be510af91505d2cf..1d2ca535ee4472156d70715c575f5f94b4e568d1 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemMetadata.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/AssessmentItemMetadata.java
@@ -45,6 +45,10 @@ public class AssessmentItemMetadata {
 	private String license;
 	private String editor;
 	private String editorVersion;
+	private String topic;
+	private String creator;
+	private String assessmentType;
+	private String additionalInformations;
 	private int numOfAnswerAlternatives;
 	private BigDecimal difficulty;
 	private BigDecimal differentiation;
@@ -191,6 +195,38 @@ public class AssessmentItemMetadata {
 		this.hasError = hasError;
 	}
 	
+	public String getTopic() {
+		return topic;
+	}
+
+	public void setTopic(String topic) {
+		this.topic = topic;
+	}
+
+	public String getCreator() {
+		return creator;
+	}
+
+	public void setCreator(String creator) {
+		this.creator = creator;
+	}
+
+	public String getAssessmentType() {
+		return assessmentType;
+	}
+
+	public void setAssessmentType(String assessmentType) {
+		this.assessmentType = assessmentType;
+	}
+
+	public String getAdditionalInformations() {
+		return additionalInformations;
+	}
+
+	public void setAdditionalInformations(String additionalInformations) {
+		this.additionalInformations = additionalInformations;
+	}
+
 	public void toBuilder(ManifestMetadataBuilder metadata, Locale locale) {
 		if(getQuestionType() != null) {
 			metadata.setOpenOLATMetadataQuestionType(getQuestionType().getPrefix());
@@ -243,19 +279,30 @@ public class AssessmentItemMetadata {
 		if(numOfAnswerAlternatives >= 0) {
 			metadata.setOpenOLATMetadataDistractors(numOfAnswerAlternatives);
 		}
+		metadata.setOpenOLATMetadataCreator(creator);
+		metadata.setOpenOLATMetadataTopic(topic);
+		metadata.setOpenOLATMetadataAssessmentType(assessmentType);
+		metadata.setOpenOLATMetadataAdditionalInformations(additionalInformations);
 	}
 	
 	public void fromBuilder(ManifestMetadataBuilder metadata) {
 		// general
 		keywords = metadata.getGeneralKeywords();
+		coverage = metadata.getCoverage();
 		
+		//educational
 		EducationalType educational = metadata.getEducational(false);
 		if(educational != null) {
 			level = metadata.getEducationContext();
 		}
+		typicalLearningTime = metadata.getEducationalLearningTime();
 		
+		//taxonomy
 		taxonomyPath = metadata.getClassificationTaxonomy();
-	
+
+		//rights
+		license = metadata.getLicense();
+		
 		//qti metadata
 		QTIMetadataType qtiMetadata = metadata.getQtiMetadata(true);
 		if(qtiMetadata != null) {
@@ -282,6 +329,18 @@ public class AssessmentItemMetadata {
 			if(openolatMetadata.getDistractors() != null) {
 				numOfAnswerAlternatives = openolatMetadata.getDistractors().intValue();
 			}
+			if(openolatMetadata.getTopic() != null) {
+				topic = openolatMetadata.getTopic();
+			}
+			if(openolatMetadata.getAssessmentType() != null) {
+				assessmentType = openolatMetadata.getAssessmentType();
+			}
+			if(openolatMetadata.getCreator() != null) {
+				creator = openolatMetadata.getCreator();
+			}
+			if(openolatMetadata.getAdditionalInformations() != null) {
+				additionalInformations = openolatMetadata.getAdditionalInformations();
+			}
 		}
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/ManifestMetadataBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/ManifestMetadataBuilder.java
index 53141654617a6124f1ee22558df3daadc48d9c03..0490dbd5a196125a9580829195ccf50adb15724c 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/ManifestMetadataBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/ManifestMetadataBuilder.java
@@ -303,21 +303,30 @@ public class ManifestMetadataBuilder {
 		}
 	}
 	
-	public void setLicense(String license) {
+	public String getLicense() {
 		RightsType rights = getRights(true);
 		if(rights != null) {
 			CopyrightandotherrestrictionsType type = getFromAny(CopyrightandotherrestrictionsType.class, rights.getContent());
-			if(type == null) {
-				type = mdObjectFactory.createCopyrightandotherrestrictionsType();
-				rights.getContent().add(mdObjectFactory.createCopyrightandotherrestrictions(type));
-			}
-			SourceType sourceType = mdObjectFactory.createSourceType();
-			sourceType.setLangstring(createString("https://www.openolat.org", "en"));
-			ValueType valueType = mdObjectFactory.createValueType();
-			valueType.setLangstring(createString(license, "en"));
-			type.setSource(sourceType);
-			type.setValue(valueType);
+			if(type != null && type.getValue() != null && type.getValue().getLangstring() != null) {
+				return type.getValue().getLangstring().getValue();
+			}	
 		}
+		return null;
+	}
+	
+	public void setLicense(String license) {
+		RightsType rights = getRights(true);
+		CopyrightandotherrestrictionsType type = getFromAny(CopyrightandotherrestrictionsType.class, rights.getContent());
+		if(type == null) {
+			type = mdObjectFactory.createCopyrightandotherrestrictionsType();
+			rights.getContent().add(mdObjectFactory.createCopyrightandotherrestrictions(type));
+		}
+		SourceType sourceType = mdObjectFactory.createSourceType();
+		sourceType.setLangstring(createString("https://www.openolat.org", "en"));
+		ValueType valueType = mdObjectFactory.createValueType();
+		valueType.setLangstring(createString(license, "en"));
+		type.setSource(sourceType);
+		type.setValue(valueType);
 	}
 	
 	public String getClassificationTaxonomy() {
@@ -684,6 +693,33 @@ public class ManifestMetadataBuilder {
 		}
 	}
 	
+	public String getOpenOLATMetadataCreator() {
+		OpenOLATMetadataType ooMetadata = getOpenOLATMetadata(false);
+		return ooMetadata == null ? null : ooMetadata.getCreator();
+	}
+	
+	public void setOpenOLATMetadataCreator(String creator) {
+		getOpenOLATMetadata(true).setCreator(creator);
+	}
+	
+	public String getOpenOLATMetadataTopic() {
+		OpenOLATMetadataType ooMetadata = getOpenOLATMetadata(false);
+		return ooMetadata == null ? null : ooMetadata.getTopic();
+	}
+	
+	public void setOpenOLATMetadataTopic(String topic) {
+		getOpenOLATMetadata(true).setTopic(topic);
+	}
+	
+	public String getOpenOLATMetadataAdditionalInformations() {
+		OpenOLATMetadataType ooMetadata = getOpenOLATMetadata(false);
+		return ooMetadata == null ? null : ooMetadata.getAdditionalInformations();
+	}
+	
+	public void setOpenOLATMetadataAdditionalInformations(String informations) {
+		getOpenOLATMetadata(true).setAdditionalInformations(informations);
+	}
+	
 	/**
 	 * Return the qti metadata if it exists or if specified, create
 	 * one and append it to the metadata of the resource.
@@ -864,5 +900,8 @@ public class ManifestMetadataBuilder {
 		setOpenOLATMetadataStandardDeviation(item.getStdevDifficulty());
 		setOpenOLATMetadataUsage(item.getUsage());
 		setOpenOLATMetadataAssessmentType(item.getAssessmentType());
+		setOpenOLATMetadataCreator(item.getCreator());
+		setOpenOLATMetadataTopic(item.getTopic());
+		setOpenOLATMetadataAdditionalInformations(item.getAdditionalInformations());
 	}
 }
diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI21ImportProcessor.java b/src/main/java/org/olat/ims/qti21/pool/QTI21ImportProcessor.java
index e8b13c279f7a3b687572c7b7980936449aaa7046..cc1c8d35a2c0d38c324dcfb016bbd922d32ae4ef 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI21ImportProcessor.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI21ImportProcessor.java
@@ -130,9 +130,9 @@ public class QTI21ImportProcessor {
 			    
 			    List<Path> imsmanifests = visitor.getImsmanifestFiles();
 			    for(Path imsmanifest:imsmanifests) {
-			    	InputStream in = Files.newInputStream(imsmanifest);
-			    	ManifestBuilder manifestBuilder = ManifestBuilder.read(new ShieldInputStream(in));
-			    	List<ResourceType> resources = manifestBuilder.getResourceList();
+			    		InputStream in = Files.newInputStream(imsmanifest);
+			    		ManifestBuilder manifestBuilder = ManifestBuilder.read(new ShieldInputStream(in));
+			    		List<ResourceType> resources = manifestBuilder.getResourceList();
 					for(ResourceType resource:resources) {
 						ManifestMetadataBuilder metadataBuilder = manifestBuilder.getMetadataBuilder(resource, true);
 						QuestionItem qitem = processResource(resource, imsmanifest, metadataBuilder);
@@ -288,12 +288,6 @@ public class QTI21ImportProcessor {
 			QItemType defType = convertType(assessmentItem);
 			poolItem.setType(defType);
 		}
-		/*if(docInfos != null) {
-			processSidecarMetadata(poolItem, docInfos);
-		}*/
-		if(metadata != null) {
-			//processItemMetadata(poolItem, metadata);
-		}
 		questionItemDao.persist(owner, poolItem);
 		return poolItem;
 	}
@@ -314,7 +308,7 @@ public class QTI21ImportProcessor {
 			default: return qItemTypeDao.loadByType(QuestionType.UNKOWN.name());
 		}
 	}
-	
+	//additionalInformations, assessmentType
 	protected void processItemMetadata(QuestionItemImpl poolItem, AssessmentItemMetadata metadata) {
 		//non heuristic set of question type
 		String typeStr = null;	
@@ -351,6 +345,7 @@ public class QTI21ImportProcessor {
 			poolItem.setTaxonomyLevel(taxonomyLevel);
 		}
 		
+		//educational
 		String level = metadata.getLevel();
 		if(StringHelper.containsNonWhitespace(level)) {
 			QTIMetadataConverter converter = new QTIMetadataConverter(qItemTypeDao, qLicenseDao, qEduContextDao, qpoolService);
@@ -372,22 +367,26 @@ public class QTI21ImportProcessor {
 		if(StringHelper.containsNonWhitespace(editorVersion)) {
 			poolItem.setEditorVersion(editorVersion);
 		}
-		
-		int numOfAnswerAlternatives = metadata.getNumOfAnswerAlternatives();
-		if(numOfAnswerAlternatives > 0) {
-			poolItem.setNumOfAnswerAlternatives(numOfAnswerAlternatives);
-		}
-		
-		poolItem.setDifficulty(metadata.getDifficulty());
-		poolItem.setDifferentiation(metadata.getDifferentiation());
-		poolItem.setStdevDifficulty(metadata.getStdevDifficulty());
-		
+
 		String license = metadata.getLicense();
 		if(StringHelper.containsNonWhitespace(license)) {
 			QTIMetadataConverter converter = new QTIMetadataConverter(qItemTypeDao, qLicenseDao, qEduContextDao, qpoolService);
 			QLicense qLicense = converter.toLicense(license);
 			poolItem.setLicense(qLicense);
 		}
+		
+		//OpenOLAT
+		poolItem.setDifficulty(metadata.getDifficulty());
+		poolItem.setDifferentiation(metadata.getDifferentiation());
+		poolItem.setStdevDifficulty(metadata.getStdevDifficulty());
+		int numOfAnswerAlternatives = metadata.getNumOfAnswerAlternatives();
+		if(numOfAnswerAlternatives > 0) {
+			poolItem.setNumOfAnswerAlternatives(numOfAnswerAlternatives);
+		}
+		poolItem.setCreator(metadata.getCreator());
+		poolItem.setTopic(metadata.getTopic());
+		poolItem.setAssessmentType(metadata.getAssessmentType());
+		poolItem.setAdditionalInformations(metadata.getAdditionalInformations());
 	}
 	
 	public static class ImsManifestVisitor extends SimpleFileVisitor<Path> {
diff --git a/src/main/java/org/olat/ims/qti21/pool/QTI21PreviewController.java b/src/main/java/org/olat/ims/qti21/pool/QTI21PreviewController.java
index 8cd2eca26ba66e003de5e312651c6e2640802a67..dfdf45859aa62fb5278db95e58f97377ea47716f 100644
--- a/src/main/java/org/olat/ims/qti21/pool/QTI21PreviewController.java
+++ b/src/main/java/org/olat/ims/qti21/pool/QTI21PreviewController.java
@@ -28,9 +28,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
-import org.olat.ims.qti21.AssessmentSessionAuditLogger;
 import org.olat.ims.qti21.QTI21Service;
-import org.olat.ims.qti21.manager.audit.DefaultAssessmentSessionAuditLogger;
 import org.olat.ims.qti21.ui.editor.AssessmentItemPreviewSolutionController;
 import org.olat.modules.qpool.QPoolService;
 import org.olat.modules.qpool.QuestionItem;
@@ -48,7 +46,6 @@ public class QTI21PreviewController extends BasicController {
 	private final VelocityContainer mainVC;
 	
 	private AssessmentItemPreviewSolutionController previewCtrl;
-	private AssessmentSessionAuditLogger candidateAuditLogger = new DefaultAssessmentSessionAuditLogger();
 	
 	@Autowired
 	private QTI21Service qtiService;
diff --git a/src/main/java/org/olat/modules/qpool/QuestionItemShort.java b/src/main/java/org/olat/modules/qpool/QuestionItemShort.java
index e7a3db11228dcf4a709711441ac5722d3701cebf..6dc3d5478855c1835ed407c539185afd5e96f4f6 100644
--- a/src/main/java/org/olat/modules/qpool/QuestionItemShort.java
+++ b/src/main/java/org/olat/modules/qpool/QuestionItemShort.java
@@ -54,7 +54,7 @@ public interface QuestionItemShort extends OLATResourceable, CreateInfo, Modifie
 	 */
 	public String getTaxonomyLevelName();
 	
-	public String getTaxonomicPath();;
+	public String getTaxonomicPath();
 	
 	public String getTopic();