diff --git a/src/main/java/org/olat/course/nodes/video/VideoRunController.java b/src/main/java/org/olat/course/nodes/video/VideoRunController.java
index 392e118796b15a919c4b2791e2bf59f2e7744498..d83f31cffd2e11eb610ed3f042759bc0c538148a 100644
--- a/src/main/java/org/olat/course/nodes/video/VideoRunController.java
+++ b/src/main/java/org/olat/course/nodes/video/VideoRunController.java
@@ -41,6 +41,7 @@ import org.olat.course.nodes.cp.CPRunController;
 import org.olat.course.run.navigation.NodeRunConstructionResult;
 import org.olat.modules.ModuleConfiguration;
 import org.olat.modules.video.ui.VideoDisplayController;
+import org.olat.modules.video.ui.VideoEvent;
 import org.olat.repository.RepositoryEntry;
 import org.olat.util.logging.activity.LoggingResourceable;
 
@@ -108,8 +109,12 @@ public class VideoRunController extends BasicController {
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
 		if(source == videoDispCtr){
-			if(VideoDisplayController.ENDED_EVENT.equals(event)){
-				//TODO: catch even fired when video ended
+			if (event instanceof VideoEvent	) {
+				VideoEvent videoEvent = (VideoEvent) event;
+				if (videoEvent.getCommand().equals(VideoEvent.ENDED)) {
+					//TODO: catch even fired when video ended
+					// increment attempt variable
+				}
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
index a1552f74abcd6b0c43884a6c06a53ddc371b04b6..76391f3b773b82a25ae9a549c8b86a8ca35db939 100644
--- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
+++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java
@@ -131,8 +131,7 @@ public class VideoManagerImpl implements VideoManager {
 	 */
 	@Override
 	public VFSLeaf getPosterframe(OLATResource videoResource) {
-		String posterframePath = readVideoMetadataFile(videoResource).getPosterframe();
-		VFSLeaf posterFrame = resolveFromMasterContainer(videoResource,posterframePath);
+		VFSLeaf posterFrame = resolveFromMasterContainer(videoResource, FILENAME_POSTER_JPG);
 		return posterFrame;
 	}
 
@@ -141,23 +140,9 @@ public class VideoManagerImpl implements VideoManager {
 	 */
 	@Override
 	public void setPosterframe(OLATResource videoResource, VFSLeaf posterframe){
-		VideoMetadata metaData = readVideoMetadataFile(videoResource);
-		String oldPath = metaData.getPosterframe();
-		if(oldPath != null){
-			VFSLeaf oldPoster = resolveFromMasterContainer(videoResource, metaData.getPosterframe());
-			if(oldPoster != null){
-				oldPoster.delete();
-			}
-		}
-		
 		VFSContainer masterContainer = getMasterContainer(videoResource);
 		VFSLeaf newPoster = VFSManager.resolveOrCreateLeafFromPath(masterContainer, FILENAME_POSTER_JPG);
-
-		if(!newPoster.isSame(posterframe)){
-			VFSManager.copyContent(posterframe, newPoster);
-		}
-		metaData.setPosterframe(newPoster.getName());
-		writeVideoMetadataFile(metaData, videoResource);
+		VFSManager.copyContent(posterframe, newPoster);
 		
 		// Update also repository entry image, use new posterframe
 		VFSLeaf posterImage = (VFSLeaf)masterContainer.resolve(FILENAME_POSTER_JPG);
@@ -165,7 +150,6 @@ public class VideoManagerImpl implements VideoManager {
 			RepositoryEntry repoEntry = repositoryManager.lookupRepositoryEntry(videoResource, true);
 			repositoryManager.setImage(posterImage, repoEntry);
 		}
-
 	}
 
 	/**
@@ -495,7 +479,6 @@ public class VideoManagerImpl implements VideoManager {
 		// generate a poster image, use 20th frame as a default
 		VFSLeaf posterResource = VFSManager.resolveOrCreateLeafFromPath(masterContainer, FILENAME_POSTER_JPG);
 		getFrame(videoResource, 20, posterResource);
-		metaData.setPosterframe(FILENAME_POSTER_JPG);
 		// finally safe to disk
 		writeVideoMetadataFile(metaData, videoResource);
 
diff --git a/src/main/java/org/olat/modules/video/model/VideoMetadata.java b/src/main/java/org/olat/modules/video/model/VideoMetadata.java
index 856ec755e3479a944a3e2755ea931e482a22f6fb..bed34d02f86433f44c73827007be947b71772009 100644
--- a/src/main/java/org/olat/modules/video/model/VideoMetadata.java
+++ b/src/main/java/org/olat/modules/video/model/VideoMetadata.java
@@ -44,10 +44,7 @@ public class VideoMetadata implements Serializable{
 		public static final int CURRENT_MODEL_VERSION = 1;
 		
 		private Size size;
-		private String posterframe;
 		private HashMap<String, String> tracks;
-		private boolean commentsEnabled;
-		private boolean ratingEnabled;
 		
 		@SuppressWarnings("unused")
 		private int modelVersion = 0; 
@@ -65,15 +62,7 @@ public class VideoMetadata implements Serializable{
 		public void setSize(Size size) {
 			this.size = size;
 		}
-
-		public String getPosterframe() {
-			return posterframe;
-		}
-
-		public void setPosterframe(String posterframe) {
-			this.posterframe = posterframe;
-		}
-
+		
 		public HashMap<String, String> getAllTracks(){
 			return tracks;
 		}
@@ -88,21 +77,5 @@ public class VideoMetadata implements Serializable{
 		
 		public void removeTrack(String lang){
 			tracks.remove(lang);
-		}
-		
-		public void setCommentsEnabled(boolean isEnabled){
-			this.commentsEnabled = isEnabled;
-		}
-		
-		public boolean getCommentsEnabled(){
-			return this.commentsEnabled;
-		}
-		
-		public void setRatingEnabled(boolean isEnabled){
-			this.ratingEnabled = isEnabled;
-		}
-		
-		public boolean getRatingEnabled(){
-			return this.ratingEnabled;
-		}
+		}		
 }
diff --git a/src/main/java/org/olat/modules/video/ui/QualityTableRow.java b/src/main/java/org/olat/modules/video/ui/QualityTableRow.java
index b908b9f9f5f71c410b69ccd6f1aca77b196f72f9..9ea66fcc3d15cb3ad965c7792eea8f6f4849957e 100644
--- a/src/main/java/org/olat/modules/video/ui/QualityTableRow.java
+++ b/src/main/java/org/olat/modules/video/ui/QualityTableRow.java
@@ -31,11 +31,11 @@ import org.olat.core.gui.components.form.flexible.elements.FormLink;
  */
 public class QualityTableRow {
 
-	String resolution;
-	String dimension;
-	String size;
-	String format;
-	FormLink viewLink;
+	private String resolution;
+	private String dimension;
+	private String size;
+	private String format;
+	private FormLink viewLink;
 
 	protected FormUIFactory uifactory = FormUIFactory.getInstance();
 
diff --git a/src/main/java/org/olat/modules/video/ui/TrackTableRow.java b/src/main/java/org/olat/modules/video/ui/TrackTableRow.java
index 489017408101094f0550ff9c93ab3eddb4884069..a61129732e9fd2bcd4e9572cb889a5876b2b36b7 100644
--- a/src/main/java/org/olat/modules/video/ui/TrackTableRow.java
+++ b/src/main/java/org/olat/modules/video/ui/TrackTableRow.java
@@ -32,9 +32,9 @@ import org.olat.core.util.vfs.VFSLeaf;
  */
 public class TrackTableRow {
 
-	String language;
-	VFSLeaf track;
-	FormLink deleteLink;
+	private String language;
+	private VFSLeaf track;
+	private FormLink deleteLink;
 
 	protected FormUIFactory uifactory = FormUIFactory.getInstance();
 
diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
index aba2c6ffa62a21cfbded22e7db0cb847601a148f..3a56fda8947c253b9293c033cde5d7158b3f4b5a 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
@@ -56,7 +56,7 @@ public class VideoDisplayController extends BasicController {
 
 	private static final String GUIPREF_KEY_PREFERRED_RESOLUTION = "preferredResolution";
 	@Autowired
-	VideoManager videoManager;
+	private VideoManager videoManager;
 
 	private UserCommentsAndRatingsController commentsAndRatingCtr;
 	private VelocityContainer mainVC;
@@ -66,8 +66,6 @@ public class VideoDisplayController extends BasicController {
 	
 	private RepositoryEntry entry;
 	private String descriptionText;
-		
-	public static final Event ENDED_EVENT = new Event("videoEnded");
 
 
 	public VideoDisplayController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry, boolean autoWidth) {
diff --git a/src/main/java/org/olat/modules/video/ui/VideoEvent.java b/src/main/java/org/olat/modules/video/ui/VideoEvent.java
index beda37280f8b4ec02e6a29c31348656734525a95..0c9d4dd31f87b89966938bc1d1ac2e45249b8c27 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoEvent.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoEvent.java
@@ -28,6 +28,8 @@ import org.olat.core.gui.control.Event;
  *
  */
 public class VideoEvent extends Event {
+	private static final long serialVersionUID = 5180562757687791093L;
+	
 	public static final String PLAY = "play";
 	public static final String PAUSE = "pause";
 	public static final String SEEKED = "seeked";
diff --git a/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java b/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java
index 762db3c31bff6e12492099b1cf91d50986d20a4c..f94d617bda4c025a8690fb66dfb102281859c3ab 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java
@@ -22,7 +22,6 @@ package org.olat.modules.video.ui;
 import org.olat.core.commons.services.image.Size;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
-import org.olat.core.gui.components.form.flexible.FormUIFactory;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -39,8 +38,6 @@ import org.springframework.beans.factory.annotation.Autowired;
  *
  */
 public class VideoMetaDataEditFormController extends FormBasicController {
-
-	protected FormUIFactory uifactory = FormUIFactory.getInstance();
 	@Autowired
 	private VideoManager videoManager;
 	private OLATResource videoResource;
diff --git a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java
index 331c17ff85d53a604d2835b906ceb88d49ed5e21..f0f4ef365f5425b439205d51f83ce9170fa6afaf 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java
@@ -31,7 +31,6 @@ import org.jcodec.containers.mp4.demuxer.MP4Demuxer;
 import org.olat.core.commons.modules.bc.FolderEvent;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.form.flexible.FormUIFactory;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
 import org.olat.core.gui.components.velocity.VelocityContainer;
@@ -57,13 +56,11 @@ public class VideoPosterSelectionForm extends BasicController {
 	private static final String FILENAME_POSTFIX_JPG = ".jpg";
 	private static final String FILENAME_PREFIX_PROPOSAL_POSTER = "proposalPoster";
 	
-	protected FormUIFactory uifactory = FormUIFactory.getInstance();
-	long remainingSpace;
 	private VFSContainer tmpContainer;
 
 	@Autowired
 	private VideoManager videoManager;
-	VelocityContainer proposalLayout = createVelocityContainer("video_poster_proposal");
+	private VelocityContainer proposalLayout = createVelocityContainer("video_poster_proposal");
 
 	private Map<String, String> generatedPosters = new HashMap<String, String>();
 
diff --git a/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java b/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java
index b6a160fb3ecd5d285d51dc18e11515bfa8940458..68bde5897861eb29f436732168bca232cdc219c7 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java
@@ -46,7 +46,7 @@ import org.olat.resource.OLATResource;
 
 public class VideoPosterUploadForm extends FormBasicController {
 	private OLATResource videoResource;
-	long remainingSpace;
+	private long remainingSpace;
 	private VFSContainer videoResourceFileroot;
 	private VFSContainer metaDataFolder;
 	private FileElement posterField;
diff --git a/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java b/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java
index f8281846d197a38a4f3ad06da0ec230c05463685..a2344389f926fbe157f554c8d445480bd6c9b6db 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java
@@ -42,7 +42,6 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle
 import org.olat.core.util.Formatter;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.modules.video.VideoManager;
-import org.olat.modules.video.VideoModule;
 import org.olat.modules.video.manager.VideoMediaMapper;
 import org.olat.modules.video.model.VideoQualityVersion;
 import org.olat.modules.video.ui.VideoQualityTableModel.QualityTableCols;
@@ -65,8 +64,6 @@ public class VideoQualityTableFormController extends FormBasicController {
 
 	@Autowired
 	private VideoManager videoManager;
-	@Autowired
-	private VideoModule videoModule;
 
 	public VideoQualityTableFormController(UserRequest ureq, WindowControl wControl, RepositoryEntry videoEntry) {
 		super(ureq, wControl, LAYOUT_VERTICAL);
@@ -135,6 +132,7 @@ public class VideoQualityTableFormController extends FormBasicController {
 				// initialize preview controller only once
 				previewVC = createVelocityContainer("video_preview");
 				cmc = new CloseableModalController(getWindowControl(), "close", previewVC);
+				listenTo(cmc);
 			}
 			// Get the user object from the link to access version object
 			FormLink link = (FormLink) source;
diff --git a/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java b/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java
index 83c22e53a34cb9a666faf17daaf9c0d25fc8fd00..96be11303b55b9bdadc74d308f41a193e3c35ec2 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java
@@ -57,10 +57,8 @@ public class VideoTrackEditController extends FormBasicController {
 	private FlexiTableElement tableEl;
 	private VideoTracksTableModel tableModel;
 	private FormLink addButton;
-	VideoTrackUploadForm trackUploadForm;
-	VideoPosterUploadForm posterUploadForm;
-	VideoPosterSelectionForm posterSelectionForm;
-	CloseableModalController cmc;
+	private VideoTrackUploadForm trackUploadForm;
+	private CloseableModalController cmc;
 
 	private Map<String, TrackTableRow> rows;
 
@@ -146,9 +144,14 @@ public class VideoTrackEditController extends FormBasicController {
 			tableEl.setVisible(true);
 			tableEl.setEnabled(true);
 			cmc.deactivate();
-		}
-		else if(event.getCommand() == "CLOSE_MODAL_EVENT"){
+			// cleanup
+			removeAsListenerAndDispose(trackUploadForm);
+			removeAsListenerAndDispose(cmc);
+		} else if(event.getCommand() == "CLOSE_MODAL_EVENT"){
 			cmc.deactivate();
+			// cleanup
+			removeAsListenerAndDispose(trackUploadForm);
+			removeAsListenerAndDispose(cmc);
 		}
 	}