diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java
index d9d4d496b8c7b4604a27f34457247172e9731f2e..68a573d7e397d15eeab4e3c0b0051aa239f22ac9 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXLayoutController.java
@@ -15,6 +15,8 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
@@ -30,11 +32,8 @@ import javafx.scene.layout.BorderPane;
 
 /**
  * 
- * Let's say hello to the world.
  * 
- * 
- * 
- * Controller class for the "Hello world!" view. References the FXML layout and contains all control
+ * Controller class for the "marker view". References the FXML layout and contains all control
  * 
  * logic.
  * 
@@ -65,41 +64,75 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node,
 	@FXML
 	private BorderPane pane;
 
+	@SuppressWarnings("javadoc")
+	int btnOption = 0;
+
 	/** Toggle State */
+	@SuppressWarnings("unused")
 	private Map<ESeverity, Boolean> toggleState;
 
+	/**  */
+	List<ESeverity> SevrList = new ArrayList<ESeverity>();
+
 	/**
 	 * @param toggleState
 	 */
+	@SuppressWarnings("unchecked")
 	public ErrorViewFXLayoutController(Map<ESeverity, Boolean> toggleState) {
 		this.toggleState = toggleState;
 	}
 
 	/** Called when debug checkbox is pushed. */
 	public void onDebugBtn() {
-
+		if(!debugBtn.isPressed()) {
+			btnOption = 3;
+		} else {
+			btnOption = 0;
+		}
+		initialize();
 	}
 
 	/** Called when info checkbox is pushed. */
 	public void onInfoBtn() {
-
+		if(!infoBtn.isPressed()) {
+			btnOption = 4;
+		} else {
+			btnOption = 0;
+		}
+		initialize();
 	}
 
 	/** Called when warning checkbox is pushed. */
 	public void onWarningBtn() {
-
+		if(!warningBtn.isPressed()) {
+			btnOption = 2;
+		} else {
+			btnOption = 0;
+		}
+		initialize();
 	}
 
 	/** Called when error checkbox is pushed. */
 	public void onErrorBtn() {
-
+		if(!errorBtn.isPressed()) {
+			btnOption = 1;
+		} else {
+			btnOption = 0;
+		}
+		initialize();
 	}
 
 	/** Called when fatal checkbox is pushed. */
 	public void onFatalBtn() {
-
+		if(!fatalBtn.isPressed()) {
+			btnOption = 5;
+		} else {
+			btnOption = 0;
+		}
+		initialize();
 	}
 
+	/** {@inheritDoc} */
 	@Override
 	public String getFXMLLocation() {
 		return "ErrorViewFXLayout.fxml";
@@ -108,11 +141,47 @@ public class ErrorViewFXLayoutController extends CompositeFXControllerBase<Node,
 	/** {@inheritDoc} */
 	@Override
 	public void initialize() {
-		DynamicTreeContentProviderBase<Object> contentProvider = new MarkerViewFXContentProvider();
-		DynamicTreeTableUIProviderBase<Object> uiProvider = new MarkerViewFXUIProvider();
 
-		DynamicTreeTableViewer<Object> treeTable = new DynamicTreeTableViewer<Object>(new Object(),
-				false, 2, contentProvider, uiProvider);
+		// To Complete (Under Construction): Currently the can only have filtering for only one type
+		// of Severity
+		// Johannes: need suggestion/feedback to complete it also please help me with grouping the
+		// severities w.r.t labels
+		switch(btnOption) {
+			case 0: // for showing all the Severities
+				SevrList.clear();
+				SevrList.add(ESeverity.ERROR);
+				SevrList.add(ESeverity.WARNING);
+				SevrList.add(ESeverity.DEBUG);
+				SevrList.add(ESeverity.FATAL);
+				SevrList.add(ESeverity.INFO);
+				SevrList.add(ESeverity.NONE);
+				break;
+			case 1: // for showing only Error
+				SevrList.clear();
+				SevrList.add(ESeverity.ERROR);
+				break;
+			case 2: // for showing only Warning
+				SevrList.clear();
+				SevrList.add(ESeverity.WARNING);
+				break;
+			case 3: // for showing Debug
+				SevrList.clear();
+				SevrList.add(ESeverity.DEBUG);
+				break;
+			case 4: // for showing Info
+				SevrList.clear();
+				SevrList.add(ESeverity.INFO);
+				break;
+			case 5: // for showing Fatal
+				SevrList.clear();
+				SevrList.add(ESeverity.FATAL);
+				break;
+		}
+
+		DynamicTreeContentProviderBase<Object> contentProvider = new MarkerViewFXContentProvider();
+		DynamicTreeTableUIProviderBase<Object> uiProvider = new MarkerViewFXUIProvider(this);
+		DynamicTreeTableViewer<Object> treeTable =
+				new DynamicTreeTableViewer<Object>(SevrList, false, 2, contentProvider, uiProvider);
 
 		treeTable.addColumn("Severity", 80);
 		treeTable.addColumn("Element", 80);
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java
index c3c9c47530969649fbbd517af126b4c8ab91c824..923ec8ae724cf521fe9e995a2b54f2d7e84a36de 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/ErrorViewFXViewPart.java
@@ -33,7 +33,7 @@ import org.fortiss.tooling.kernel.ui.service.IMarkerService;
 
 /**
  * 
- * Let's say hello to the world.
+ * JavaFX view part of the Marker View.
  * 
  * 
  * 
@@ -75,7 +75,6 @@ public class ErrorViewFXViewPart extends AF3FXViewPart {
 
 	/** Called when there are error amrker updates. */
 	public void refresh() {
-		// TODO
 	}
 
 	/** Returns toggleState. */
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java
index 4e2b03f7713e66a946046cc3c0205d65b8ab5586..4465b0b29e232bc6cfac6c76d6f3741be231bdb3 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXContentProvider.java
@@ -17,9 +17,12 @@ package org.fortiss.tooling.kernel.ui.internal.views.ErrorViewFX;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeContentProviderBase;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
+import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity;
+import org.fortiss.tooling.kernel.ui.service.IMarkerService;
 
 /**
  * 
@@ -27,24 +30,24 @@ import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
  */
 public class MarkerViewFXContentProvider extends DynamicTreeContentProviderBase<Object> {
 
-	private MarkerViewFXContentProvider errorViewFXViewPart;
-
-	/**
-	 * 
-	 */
-	public MarkerViewFXContentProvider() {
-		// TODO Auto-generated constructor stub
-	}
+	private ErrorViewFXViewPart markerViewFXViewPart;
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	protected Collection<? extends Object> getChildren(Object parent) {
-		ArrayList<IConstraintViolation> result = new ArrayList<IConstraintViolation>();
-		if(parent instanceof IConstraintViolation) {
-			IConstraintViolation violation = (IConstraintViolation)parent;
-			result.add(violation);
+	public Collection<? extends Object> getChildren(Object parent) {
+		List<ESeverity> servList = new ArrayList<ESeverity>();
+		Collection<IConstraintViolation> violation_list = new ArrayList<IConstraintViolation>();
+
+		if(parent instanceof List) {
+			servList = (List)parent;
+			for(int i = 0; i < servList.size(); i++) {
+				violation_list.addAll(IMarkerService.getInstance()
+						.getAllViolationsWithSeverity((ESeverity)servList.get(i)));
+			}
+			return violation_list;
 		}
-		return result;
+
+		return null;
+
 	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java
index 014024647f72d1f728f97622c96d17672f382139..7c8fdec172903965260b1bd0bca8cdcdf2eba2e3 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/views/ErrorViewFX/MarkerViewFXUIProvider.java
@@ -19,77 +19,88 @@ import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
 import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
+import org.fortiss.tooling.kernel.model.INamedCommentedElement;
+import org.fortiss.tooling.kernel.service.ICommandStackService;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
 import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
 
+import javafx.scene.control.ContextMenu;
+
 /**
  * 
  * @author abid
  */
 public class MarkerViewFXUIProvider extends DynamicTreeTableUIProviderBase<Object> {
 
+	ErrorViewFXLayoutController errorViewFXLayoutController;
+
+	/**
+	 * @param errorViewFXLayoutController
+	 */
+	public MarkerViewFXUIProvider(ErrorViewFXLayoutController errorViewFXLayoutController) {
+		// TODO Auto-generated constructor stub
+		this.errorViewFXLayoutController = errorViewFXLayoutController;
+	}
+
 	/** {@inheritDoc} */
 	@Override
-	public String getLabel(Object element, int column) {
+	/** {@inheritDoc} */
+	public void updateValue(Object element, int column, Object value) {
+		if(column == 0 && element instanceof INamedCommentedElement) {
+			INamedCommentedElement elem = (INamedCommentedElement)element;
+			ICommandStackService.getInstance().runAsCommand(elem, () -> {
+				elem.setComment((String)value);
+			});
+		}
+	}
 
-		// column for ESevertiy Type Error, Warning etc....
-		if(column == 0) {
-			return "";
-			// return getModelElementHandlerName(element);
+	/** {@inheritDoc} */
+	@Override
+	public ContextMenu createContextMenu(Object element, int col) {
+		if(element == null || col != 0) {
+			return null;
 		}
-		// column for source element
-		if(column == 1) {
-			if(element instanceof IConstraintViolation) {
-				IConstraintViolation<? extends EObject> violation =
-						(IConstraintViolation<? extends EObject>)element;
-				IModelElementHandlerService hs = IModelElementHandlerService.getInstance();
-				IModelElementHandler<EObject> handler =
-						hs.getModelElementHandler(violation.getSource());
-				if(handler != null) {
-					return handler.getName(violation.getSource());
-				} else {
-					return "";
-				}
-			}
-			// column for the Explanation Column
-			else if(column == 2) {
-				if(element instanceof IConstraintViolation) {
-					IConstraintViolation<? extends EObject> violation =
-							(IConstraintViolation<? extends EObject>)element;
-					return violation.getExplanation();
-				} else {
-					return "";
-				}
-			}
-			// column for the Project Column
-			else if(column == 3) {
+		ContextMenu menu = new ContextMenu();
+		return menu;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public String getLabel(Object element, int col) {
 
-				if(element instanceof IConstraintViolation) {
+		if(element instanceof IConstraintViolation) {
+			switch(col) {
+				case 0: // Severity Column
+					return ((IConstraintViolation)element).getSeverity().toString();
+				case 1: // Element Column
 					IConstraintViolation<? extends EObject> violation =
 							(IConstraintViolation<? extends EObject>)element;
+					IModelElementHandlerService hs = IModelElementHandlerService.getInstance();
+					IModelElementHandler<EObject> handler =
+							hs.getModelElementHandler(violation.getSource());
+					if(handler != null) {
+						return handler.getName(violation.getSource());
+					}
+				case 2: // Explanation Column
+					return ((IConstraintViolation)element).getExplanation();
+				case 3: // Project Column
+					IConstraintViolation<? extends EObject> violation_prj =
+							(IConstraintViolation<? extends EObject>)element;
 					IPersistencyService ps = IPersistencyService.getInstance();
-					ITopLevelElement topElement = ps.getTopLevelElementFor(violation.getSource());
-
-					IModelElementHandler<EObject> handler = null;
+					ITopLevelElement topElement =
+							ps.getTopLevelElementFor(violation_prj.getSource());
+					IModelElementHandler<EObject> handler_prj = null;
 					EObject rootElement = null;
 					if(topElement != null) {
 						rootElement = topElement.getRootModelElement();
-
-						IModelElementHandlerService hs = IModelElementHandlerService.getInstance();
-						handler = hs.getModelElementHandler(rootElement);
+						IModelElementHandlerService hs_prj =
+								IModelElementHandlerService.getInstance();
+						handler_prj = hs_prj.getModelElementHandler(rootElement);
 					}
-					if(handler != null) {
-						return handler.getName(rootElement);
-					} else {
-						return "";
-					}
-				} else {
-					return "";
-				}
+					return(handler_prj != null ? handler_prj.getName(rootElement) : "");
 			}
 		}
 		return "";
 	}
-
 }