Index: trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElementFactory.java
===================================================================
--- trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElementFactory.java	(revision 576)
+++ trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/AbstractDefaultGUIElementFactory.java	(revision 585)
@@ -7,4 +7,7 @@
 package de.ugoe.cs.quest.eventcore.guimodel;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -14,11 +17,35 @@
 import java.util.logging.Logger;
 
+import de.ugoe.cs.util.console.Console;
+
 /**
  * TODO comment
+ * 
+ * TODO rename class to GUIElementFactory
  * 
  * @version $Revision: $ $Date: 13.05.2012$
  * @author 2012, last modified by $Author: patrick$
  */
-public abstract class AbstractDefaultGUIElementFactory implements IGUIElementFactory {
+public class AbstractDefaultGUIElementFactory implements IGUIElementFactory {
+    
+    /** */
+    private static AbstractDefaultGUIElementFactory instance = new AbstractDefaultGUIElementFactory();
+
+    /**
+     * TODO: comment
+     * 
+     */
+    private AbstractDefaultGUIElementFactory() {
+    }
+
+    /**
+     * TODO: comment
+     * 
+     * @return
+     */
+    public static synchronized AbstractDefaultGUIElementFactory getInstance() {
+        return instance;
+    }
+
     
     /** */
@@ -53,8 +80,8 @@
      * @throws GUIModelConfigurationException
      */
-    protected IGUIElement instantiateGUIElementFromConfiguredMappings(IGUIElementSpec specification)
-        throws GUIModelConfigurationException
-    {
+    @Override
+    public IGUIElement instantiateGUIElement(IGUIElementSpec specification) {
         Properties mappings = getMappingsFromConfiguration();
+        IGUIElement guiElement = null;
 
         String className = mappings.getProperty(specification.getType());
@@ -74,5 +101,5 @@
                 parameterTypes[0] = specification.getClass();
 
-                IGUIElement guiElement =
+                guiElement =
                     (IGUIElement) clazz.getConstructor(parameterTypes).newInstance(specification);
 
@@ -136,6 +163,9 @@
             }
         }
-
-        return null;
+        if( guiElement==null ) {
+            Console.printerrln("could not find GUI element representing class " + specification.getType());
+        }
+
+        return guiElement;
     }
 
@@ -151,17 +181,22 @@
         else {
             mappingsFromConfiguration = new Properties();
-
-            InputStream inStream =
-                this.getClass().getClassLoader().getResourceAsStream("GUIElementMapping.txt");
-
-            if (inStream != null) {
-                try {
-                    mappingsFromConfiguration.load(inStream);
+            
+            File mappingsFolder = new File("data/guimappings");
+            for( File mappingsFile : mappingsFolder.listFiles()) {
+                if(!mappingsFile.isDirectory() && mappingsFile.getName().startsWith("guimapping") && mappingsFile.getName().endsWith(".txt")) {
+                    InputStream inStream;
+                    try {
+                        inStream = new FileInputStream(mappingsFile);
+                        mappingsFromConfiguration.load(inStream);
+                    }
+                    catch (FileNotFoundException e1) {
+                        // TODO Auto-generated catch block
+                        e1.printStackTrace();
+                    }
+                    catch (IOException e) {
+                        Logger.getLogger(this.getClass().getName()).warning
+                            ("invalid GUI mappings files " + mappingsFile.getName());
+                    }
                 }
-                catch (IOException e) {
-                    Logger.getLogger(this.getClass().getName()).warning
-                        ("could not load GUIElementMapping.txt from classpath, but this may be " +
-                         "intended");
-                }
             }
 
Index: trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/GUIModelException.java
===================================================================
--- trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/GUIModelException.java	(revision 576)
+++ trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/guimodel/GUIModelException.java	(revision 585)
@@ -12,5 +12,5 @@
  * @author 2012, last modified by $Author: pharms$
  */
-public class GUIModelException extends Exception {
+public class GUIModelException extends RuntimeException {
 
     /**  */
