diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
index 55392da57abfa987d1ea44464b02338bbae596f0..9a2d1d241b4fd7e5da5ad36653c21b051bab0cef 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
@@ -165,7 +165,7 @@ public class MarkerService implements IMarkerService,
 
 		List<IConstraintViolation<? extends EObject>> checkResult = IConstraintCheckerService.INSTANCE
 				.performAllConstraintChecksRecursively(element
-						.getTopLevelElement());
+						.getRootModelElement());
 		synchronized (violationCache) {
 			CacheEntry entry = getCacheEntry(element);
 			entry.updateCacheEntries(checkResult);
@@ -305,7 +305,7 @@ public class MarkerService implements IMarkerService,
 				}
 			}
 			// project severity to parent
-			computeHighestSeverity(topElement.getTopLevelElement());
+			computeHighestSeverity(topElement.getRootModelElement());
 		}
 
 		/** Recursively projects highest severity from children to parents. */
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java
index 03002457789a6b4a25927f2e98ccfd54f09117c2..bd190c8dc3ae010da3ecefafc6134a8740b65fd4 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java
@@ -47,7 +47,7 @@ public class NavigatorTreeContentProvider implements ITreeContentProvider {
 
 		for (ITopLevelElement context : IPersistencyService.INSTANCE
 				.getTopLevelElements()) {
-			result.add(context.getTopLevelElement());
+			result.add(context.getRootModelElement());
 		}
 		return result.toArray();
 	}
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java
index eb0082eab8c6914baa033bbfadc1c2d68f2e368d..fb21442350e51b9e34f46ef2c1757c90ca470d22 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/ITransformationProvider.java
@@ -24,24 +24,21 @@ import org.fortiss.tooling.kernel.service.ITransformationService;
 import org.fortiss.tooling.kernel.service.base.IObjectAware2;
 
 /**
- * TODO: why do you mean with "extends the {@link ITransformationService}"?
- * where is the extension?
- * 
- * A transformation provider extends the {@link ITransformationService} with a
- * concrete transformation from a source element into a target element. Since
- * transformations may also produce intermediary data, which is not intended to
- * be persisted, this class uses {@link Object} instead of {@link EObject}s
- * only.
+ * A transformation provider represents a concrete transformation from a source
+ * element into a target element and is registered with the
+ * {@link ITransformationService}'s extension point. Since transformations may
+ * also produce intermediary data, which is not intended to be persisted, this
+ * class uses {@link Object} instead of {@link EObject}s only.
  * 
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating RED Hash: 85C9BC59354ADFA207E0852126747DC3
+ * @ConQAT.Rating YELLOW Hash: D798E691812994DC6321748E8CAC1C20
  */
 public interface ITransformationProvider extends IObjectAware2<Object, Object> {
 
 	/** Returns the target class this provider can provide. */
-	Class<? extends Object> getTargetClass();
+	Class<?> getTargetClass();
 
 	/**
 	 * Returns whether this provider is able to become part of a chain,
@@ -51,7 +48,7 @@ public interface ITransformationProvider extends IObjectAware2<Object, Object> {
 	 * {@link #canTransform(Object, ITransformationContext)} is called and the
 	 * concrete source object to be transformed cannot be handled.
 	 */
-	boolean canHandleChainTransformation(Class<? extends Object> sourceClass,
+	boolean canHandleChainTransformation(Class<?> sourceClass,
 			ITransformationContext context);
 
 	/**
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java
index 77a46249271fad8756cb4c79a73da6d82b385d8b..4bc037191ef7a197e5d2c5475c5eacf7a5107b95 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ITopLevelElement.java
@@ -27,9 +27,9 @@ import org.fortiss.tooling.kernel.extension.IStorageProvider;
 
 /**
  * Interface for accessing top-level elements provided by
- * {@link IStorageProvider}s. The context supports the typical methods like
+ * {@link IStorageProvider}s. This interface supports the typical methods like
  * running commands, listening to the command stack, undo and redo, a dirty
- * state and a save mechanism.
+ * state and a save mechanism as well as accessing the root model element.
  * 
  * <P>
  * Once an instance of this interface is provided to the kernel, the underlying
@@ -40,18 +40,12 @@ import org.fortiss.tooling.kernel.extension.IStorageProvider;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating RED Hash: 9226FD21C183EB5EBC673EE375282AA2
+ * @ConQAT.Rating YELLOW Hash: DE8A819268F75497B61A48B6E32A648F
  */
 public interface ITopLevelElement {
 
-	// TODO: Why does the interface ITopLevelElement have the method
-	// getTopLevelElement ? Shouldn't we rename this interface in e.g.
-	// IModelContext?
-	// in ProjectRootElementUtils we have
-	// IPersistencyService.INSTANCE.getTopLevelElementFor(element).getTopLevelElement().eContents()
-	// ----- so, a topLevelElement has another toplevelElement
-	/** Returns the top-level model element represented by this context. */
-	EObject getTopLevelElement();
+	/** Returns the root model element represented by this top-level element. */
+	EObject getRootModelElement();
 
 	/** Executes the given {@link Runnable} as model changing command. */
 	void runAsCommand(Runnable runner);
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java
index 9a3b61334ac6ecf4e8fad7dd114bec1d7be25ca8..3561e4e08e77fb58b4c36197ab675679e17ccfb1 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/data/ModelElementTransformationContext.java
@@ -26,7 +26,7 @@ import org.fortiss.tooling.kernel.extension.base.TransformationContextChainBase;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 86FBA7A228E86492FB4A54CDD086CFCC
+ * @ConQAT.Rating YELLOW Hash: 0E04AF20E122C47C6545809D144811E0
  */
 public class ModelElementTransformationContext extends
 		TransformationContextChainBase {
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
index 7a5923f67ae3b07f173ddb73e4cbc0f9189ee68f..736884dc6e0fa6578c6ab7fb34c1ef2046eb1863 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PersistencyService.java
@@ -87,7 +87,7 @@ public class PersistencyService implements IPersistencyService {
 	@Override
 	public synchronized boolean isTopLevelElement(EObject element) {
 		for (ITopLevelElement context : contextCache) {
-			if (context.getTopLevelElement() == element) {
+			if (context.getRootModelElement() == element) {
 				return true;
 			}
 		}
@@ -206,7 +206,7 @@ public class PersistencyService implements IPersistencyService {
 			EObject modelElement) {
 		while (modelElement != null) {
 			for (ITopLevelElement context : contextCache) {
-				if (context.getTopLevelElement() == modelElement) {
+				if (context.getRootModelElement() == modelElement) {
 					return context;
 				}
 			}
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java
index 3fd8d0995daee1ad4dd71efaa7f53ef34ac53826..38d6f1f5f2f0e4fa4da81f474385f792792d3332 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/TransformationService.java
@@ -57,8 +57,7 @@ public class TransformationService extends
 	 * given elements (or <code>null</code>n if no such connector exists).
 	 */
 	private ITransformationProvider findWorkingTransformationProvider(
-			Object source, Class<? extends Object> targetClass,
-			ITransformationContext context) {
+			Object source, Class<?> targetClass, ITransformationContext context) {
 		List<ITransformationProvider> list = getRegisteredHandlers(
 				source.getClass(), targetClass);
 		if (list == null) {
@@ -92,14 +91,14 @@ public class TransformationService extends
 
 	/** {@inheritDoc} */
 	@Override
-	public boolean canTransform(Object source,
-			Class<? extends Object> targetClass, ITransformationContext context) {
+	public boolean canTransform(Object source, Class<?> targetClass,
+			ITransformationContext context) {
 		return findWorkingTransformationProvider(source, targetClass, context) != null;
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public Object transform(Object source, Class<? extends Object> targetClass,
+	public Object transform(Object source, Class<?> targetClass,
 			ITransformationContext context)
 			throws TransformationFailedException {
 		return findWorkingTransformationProvider(source, targetClass, context)
@@ -109,11 +108,11 @@ public class TransformationService extends
 	/** {@inheritDoc} */
 	@Override
 	public List<TransformationProviderChain> getTransformationProviderChain(
-			Class<? extends Object> sourceClass,
-			Class<? extends Object> targetClass, ITransformationContext context) {
+			Class<?> sourceClass, Class<?> targetClass,
+			ITransformationContext context) {
 		List<TransformationProviderChain> results = new LinkedList<TransformationProviderChain>();
 		List<ITransformationProvider> currentChain = new LinkedList<ITransformationProvider>();
-		Set<Class<? extends Object>> seenTargets = new HashSet<Class<? extends Object>>();
+		Set<Class<?>> seenTargets = new HashSet<Class<?>>();
 		seenTargets.add(sourceClass);
 		findTransformationChains(sourceClass, targetClass, results,
 				currentChain, seenTargets, context);
@@ -125,12 +124,10 @@ public class TransformationService extends
 	 * is shielded against infinite loops within the transformation provider
 	 * graph.
 	 */
-	private void findTransformationChains(Class<? extends Object> sourceClass,
-			Class<? extends Object> targetClass,
-			List<TransformationProviderChain> results,
+	private void findTransformationChains(Class<?> sourceClass,
+			Class<?> targetClass, List<TransformationProviderChain> results,
 			List<ITransformationProvider> currentChain,
-			Set<Class<? extends Object>> seenTargets,
-			ITransformationContext context) {
+			Set<Class<?>> seenTargets, ITransformationContext context) {
 		if (!currentChain.isEmpty()
 				&& currentChain.get(currentChain.size() - 1).getTargetClass() == targetClass) {
 			// found a complete chain => add to result and backtrack
@@ -147,7 +144,7 @@ public class TransformationService extends
 			// dead end reached
 			return;
 		}
-		for (Class<? extends Object> key : providerMap.keySet()) {
+		for (Class<?> key : providerMap.keySet()) {
 			List<ITransformationProvider> providerList = providerMap.get(key);
 			for (ITransformationProvider provider : providerList) {
 				if (provider.canHandleChainTransformation(sourceClass, context)) {
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java
index 308a7c5ffa253ba59ca769512d108498a8d2f2a7..ca2c023f17fded36a0d5c88260f5323e6e1afe4b 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java
@@ -214,7 +214,7 @@ public class EclipseResourceStorageProvider implements
 	private ModelContext loadContext(IFile file) throws IOException {
 		ModelContext mc = new ModelContext(file);
 		loadedContexts.put(file, mc);
-		rootElementContexts.put(mc.getTopLevelElement(), mc);
+		rootElementContexts.put(mc.getRootModelElement(), mc);
 		return mc;
 	}
 
@@ -222,7 +222,7 @@ public class EclipseResourceStorageProvider implements
 	private void unloadContext(IFile file) {
 		ModelContext context = loadedContexts.remove(file);
 		if (context != null) {
-			rootElementContexts.remove(context.getTopLevelElement());
+			rootElementContexts.remove(context.getRootModelElement());
 			context.destroy();
 		}
 	}
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
index 351b8c294f8d48d27f222a3288b571f14fc43c5d..ff2e79cc45fc6aefa41dbd0804950de80562e7d1 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
@@ -96,7 +96,7 @@ class ModelContext implements ITopLevelElement {
 
 	/** {@inheritDoc} */
 	@Override
-	public EObject getTopLevelElement() {
+	public EObject getRootModelElement() {
 		return r.getContents().get(0);
 	}
 
@@ -115,7 +115,7 @@ class ModelContext implements ITopLevelElement {
 	/** Checks whether all IDs are present and updates {@link #maxId}. */
 	private void checkIDs() {
 		boolean hadMissing = false;
-		for (Iterator<EObject> i = getTopLevelElement().eAllContents(); i
+		for (Iterator<EObject> i = getRootModelElement().eAllContents(); i
 				.hasNext();) {
 			EObject eo = i.next();
 			if (eo instanceof IIdLabeled) {
@@ -138,7 +138,7 @@ class ModelContext implements ITopLevelElement {
 
 	/** Generates missing IDs. Must be called within transaction. */
 	private void generateMissingIDs() {
-		for (Iterator<EObject> i = getTopLevelElement().eAllContents(); i
+		for (Iterator<EObject> i = getRootModelElement().eAllContents(); i
 				.hasNext();) {
 			EObject eo = i.next();
 			if (eo instanceof IIdLabeled) {
@@ -178,7 +178,7 @@ class ModelContext implements ITopLevelElement {
 
 		if (needSmart) {
 			Set<Integer> usedIDs = new HashSet<Integer>();
-			for (Iterator<EObject> i = getTopLevelElement().eAllContents(); i
+			for (Iterator<EObject> i = getRootModelElement().eAllContents(); i
 					.hasNext();) {
 				EObject eo = i.next();
 				if (eo instanceof IIdLabeled) {
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java
index 5f503bb7143e81c6341e62b6ee4a2f07c5457b26..c566c8f072598c892d0c37bd95387dd92f4b473f 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/ITransformationService.java
@@ -47,9 +47,7 @@ public interface ITransformationService {
 	 * Determines if there is a transformation provider, which can perform the
 	 * transformation of the given source element into the given target element.
 	 */
-	// TODO: replace everywhere Class<? extends Object> with Class<?>
-	// http://stackoverflow.com/questions/370601/is-it-good-practice-to-replace-class-with-class-extends-object-to-avoid-warnin
-	boolean canTransform(Object source, Class<? extends Object> targetClass,
+	boolean canTransform(Object source, Class<?> targetClass,
 			ITransformationContext context);
 
 	/**
@@ -59,7 +57,7 @@ public interface ITransformationService {
 	 * @throws TransformationFailedException
 	 *             if something goes wrong during the transformation.
 	 */
-	Object transform(Object source, Class<? extends Object> targetClass,
+	Object transform(Object source, Class<?> targetClass,
 			ITransformationContext context)
 			throws TransformationFailedException;
 
@@ -69,6 +67,6 @@ public interface ITransformationService {
 	 * empty list.
 	 */
 	List<TransformationProviderChain> getTransformationProviderChain(
-			Class<? extends Object> sourceClass,
-			Class<? extends Object> targetClass, ITransformationContext context);
+			Class<?> sourceClass, Class<?> targetClass,
+			ITransformationContext context);
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java
index 532ed6f4e55fbb7401da5e29bf95efd8efdb5dd6..d937272d688dad77c52e6b24307625e20113aedd 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/base/ObjectAware2ServiceBase.java
@@ -193,8 +193,7 @@ public abstract class ObjectAware2ServiceBase<T extends IObjectAware2<? extends
 
 	/** Adds all registered classes to the given list. */
 	private void addRegisteredClasses(IConfigurationElement element,
-			List<Class<? extends Object>> list, Bundle bundle)
-			throws ClassNotFoundException {
+			List<Class<?>> list, Bundle bundle) throws ClassNotFoundException {
 		for (IConfigurationElement ce : element
 				.getChildren(getClassConfigurationElement())) {
 			Class<?> modelElementClass = ExtensionPointUtils.loadClass(
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java
index 2ae61f9c47246cfe1c9573e00c8b290ed0a9108b..01a87b3633b7a9c3ff72e9ce449a4fc20549a517 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ProjectRootElementUtils.java
@@ -46,7 +46,7 @@ public final class ProjectRootElementUtils {
 			EObject element, Class<T> clazz) {
 		return ReflectionUtils.pickInstanceOf(clazz,
 				IPersistencyService.INSTANCE.getTopLevelElementFor(element)
-						.getTopLevelElement().eContents());
+						.getRootModelElement().eContents());
 	}
 
 	/**
@@ -58,7 +58,7 @@ public final class ProjectRootElementUtils {
 			EObject parent) {
 		StringTokenizer tizer = new StringTokenizer(qualifiedName, "/");
 		EObject current = IPersistencyService.INSTANCE.getTopLevelElementFor(
-				parent).getTopLevelElement();
+				parent).getRootModelElement();
 		boolean found = true;
 		while (found && tizer.hasMoreElements()) {
 			String name = tizer.nextToken();
@@ -85,7 +85,7 @@ public final class ProjectRootElementUtils {
 	 */
 	public static EObject findElementById(IIdLabeledReference reference) {
 		EObject root = IPersistencyService.INSTANCE.getTopLevelElementFor(
-				reference).getTopLevelElement();
+				reference).getRootModelElement();
 		for (Iterator<EObject> iter = root.eAllContents(); iter.hasNext();) {
 			EObject eo = iter.next();
 			if (eo instanceof IIdLabeled