Index: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/AbstractDefaultGUIElementTest.java
===================================================================
--- trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/AbstractDefaultGUIElementTest.java	(revision 1876)
+++ trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/AbstractDefaultGUIElementTest.java	(revision 2146)
@@ -19,7 +19,7 @@
 import org.junit.Test;
 
+import de.ugoe.cs.autoquest.eventcore.IEventTargetSpec;
 import de.ugoe.cs.autoquest.eventcore.guimodel.AbstractDefaultGUIElement;
 import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
-import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElementSpec;
 
 /**
@@ -38,5 +38,5 @@
         assertCompletelyUnequal(guiElement1, guiElement2);
         
-        guiElement1.addEqualGUIElement(guiElement2);
+        guiElement1.addEqualEventTarget(guiElement2);
         assertCompletelyEqual(guiElement1, guiElement2);
         
@@ -47,5 +47,5 @@
         assertCompletelyUnequal(guiElement2, guiElement3);
         
-        guiElement1.addEqualGUIElement(guiElement3);
+        guiElement1.addEqualEventTarget(guiElement3);
         assertCompletelyEqual(guiElement1, guiElement2, guiElement3);
 
@@ -57,5 +57,5 @@
         assertCompletelyUnequal(guiElement3, guiElement4);
         
-        guiElement3.addEqualGUIElement(guiElement4);
+        guiElement3.addEqualEventTarget(guiElement4);
         assertCompletelyEqual(guiElement1, guiElement2, guiElement3, guiElement4);
     }
@@ -115,5 +115,5 @@
          */
         @Override
-        public void updateSpecification(IGUIElementSpec furtherSpec) {
+        public void updateSpecification(IEventTargetSpec furtherSpec) {
             throw new UnsupportedOperationException();
         }
Index: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/GUIModelTest.java
===================================================================
--- trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/GUIModelTest.java	(revision 1876)
+++ trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/GUIModelTest.java	(revision 2146)
@@ -23,4 +23,11 @@
 import org.junit.Test;
 
+import de.ugoe.cs.autoquest.eventcore.EventTargetModelConfigurationException;
+import de.ugoe.cs.autoquest.eventcore.HierarchicalEventTargetModel;
+import de.ugoe.cs.autoquest.eventcore.IEventTargetFactory;
+import de.ugoe.cs.autoquest.eventcore.IEventTargetSpec;
+import de.ugoe.cs.autoquest.eventcore.IHierarchicalEventTarget;
+import de.ugoe.cs.autoquest.eventcore.IHierarchicalEventTargetModel;
+
 /**
  *
@@ -32,5 +39,5 @@
      * 
      */
-    private IGUIElementFactory guiElementFactory = new TestGUIElementFactory();
+    private IEventTargetFactory guiElementFactory = new TestGUIElementFactory();
 
     /**
@@ -399,5 +406,5 @@
         IGUIElement guiElem9 = model.getChildren(guiElem1).get(1);
         
-        model.groupGUIElements(Arrays.asList(guiElem2, guiElem9), "newGroup");
+        model.groupEventTargets(Arrays.asList(guiElem2, guiElem9), "newGroup", guiElementFactory);
         
         assertEquals(1, model.getChildren(guiElem1).size());
@@ -475,5 +482,5 @@
         IGUIElement guiElem5 = model.getChildren(guiElem2).get(1);
         
-        model.groupGUIElements(Arrays.asList(guiElem3, guiElem5), "newGroup");
+        model.groupEventTargets(Arrays.asList(guiElem3, guiElem5), "newGroup", guiElementFactory);
         
         assertEquals(1, model.getChildren(guiElem2).size());
@@ -551,5 +558,5 @@
         IGUIElement guiElem4 = model.getChildren(guiElem3).get(0);
         
-        model.groupGUIElements(Arrays.asList(guiElem4), "newGroup");
+        model.groupEventTargets(Arrays.asList(guiElem4), "newGroup", guiElementFactory);
         
         assertEquals(1, model.getChildren(guiElem3).size());
@@ -629,5 +636,5 @@
         IGUIElement guiElem6 = model.getChildren(guiElem5).get(0);
 
-        model.groupGUIElements(Arrays.asList(guiElem4, guiElem6), "newGroup");
+        model.groupEventTargets(Arrays.asList(guiElem4, guiElem6), "newGroup", guiElementFactory);
     }
 
@@ -685,5 +692,5 @@
         //         \-- guiElem10
         
-        GUIModel.Traverser traverser = model.getTraverser();
+        IHierarchicalEventTargetModel.Traverser<IGUIElement> traverser = model.getTraverser();
         assertNotNull(traverser);
         assertTrue(traverser.hasFirstChild());
@@ -890,5 +897,5 @@
         //         \-- guiElem10
         
-        GUIModel.Traverser traverser = model.getTraverser(target);
+        IHierarchicalEventTargetModel.Traverser<IGUIElement> traverser = model.getTraverser(target);
         assertNotNull(traverser);
         assertFalse(traverser.hasFirstChild());
@@ -985,16 +992,30 @@
      * @author Patrick Harms
      */
-    private class TestGUIElementFactory implements IGUIElementFactory {
+    private class TestGUIElementFactory implements IEventTargetFactory {
 
         /* (non-Javadoc)
          * @see IGUIElementFactory#instantiateGUIElement(IGUIElementSpec, IGUIElement)
          */
+        @SuppressWarnings("unchecked")
         @Override
-        public IGUIElement instantiateGUIElement(IGUIElementSpec specification, IGUIElement parent)
-            throws GUIModelConfigurationException
+        public <T extends IHierarchicalEventTarget> T instantiateEventTarget(IEventTargetSpec specification,
+                                                                             T                parent)
+            throws EventTargetModelConfigurationException
         {
             assertTrue(specification instanceof TestGUIElementSpec);
             
-            return new TestGUIElement((TestGUIElementSpec) specification, parent);
+            return (T) new TestGUIElement((TestGUIElementSpec) specification, (IGUIElement) parent);
+        }
+
+        /* (non-Javadoc)
+         * @see IEventTargetFactory#instantiateGroup(String, IHierarchicalEventTarget, HierarchicalEventTargetModel)
+         */
+        @SuppressWarnings("unchecked")
+        @Override
+        public <T extends IHierarchicalEventTarget> T instantiateGroup(String                          groupName,
+                                                                       T                               parent,
+                                                                       HierarchicalEventTargetModel<T> hierarchicalEventTargetModel)
+        {
+            return (T) new GUIElementGroup(groupName, (IGUIElement) parent, (GUIModel) hierarchicalEventTargetModel);
         }
 
@@ -1053,5 +1074,5 @@
          */
         @Override
-        public boolean getSimilarity(IGUIElementSpec other) {
+        public boolean getSimilarity(IEventTargetSpec other) {
             return (other instanceof TestGUIElementSpec ?
                 ((TestGUIElementSpec) other).similarityId.equals(similarityId) : false);
@@ -1105,5 +1126,5 @@
          */
         @Override
-        public void updateSpecification(IGUIElementSpec furtherSpec) {
+        public void updateSpecification(IEventTargetSpec furtherSpec) {
             // do nothing
         }
Index: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/MockGUIElement.java
===================================================================
--- trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/MockGUIElement.java	(revision 1876)
+++ trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/MockGUIElement.java	(revision 2146)
@@ -14,4 +14,8 @@
 
 package de.ugoe.cs.autoquest.eventcore.guimodel;
+
+import de.ugoe.cs.autoquest.eventcore.IEventTargetSpec;
+import de.ugoe.cs.autoquest.eventcore.IHierarchicalEventTarget;
+import de.ugoe.cs.autoquest.eventcore.IHierarchicalEventTargetModel;
 
 public class MockGUIElement implements IGUIElement {
@@ -55,8 +59,13 @@
 
     @Override
-    public void updateSpecification(IGUIElementSpec furtherSpec) { }
+    public void updateSpecification(IEventTargetSpec furtherSpec) { }
 
     @Override
-    public void addEqualGUIElement(IGUIElement equalElement) { }
+    public IHierarchicalEventTargetModel<?> getEventTargetModel() {
+        return null;
+    }
+
+    @Override
+    public void addEqualEventTarget(IHierarchicalEventTarget equalElement) { }
 
     @Override
Index: trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/MockGUIElementSpec.java
===================================================================
--- trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/MockGUIElementSpec.java	(revision 1876)
+++ trunk/autoquest-core-events-test/src/test/java/de/ugoe/cs/autoquest/eventcore/guimodel/MockGUIElementSpec.java	(revision 2146)
@@ -14,4 +14,6 @@
 
 package de.ugoe.cs.autoquest.eventcore.guimodel;
+
+import de.ugoe.cs.autoquest.eventcore.IEventTargetSpec;
 
 public class MockGUIElementSpec implements IGUIElementSpec {
@@ -31,5 +33,5 @@
 
     @Override
-    public boolean getSimilarity(IGUIElementSpec other) {
+    public boolean getSimilarity(IEventTargetSpec other) {
         return false;
     }
