Index: code/branches/FICN/src/orxonox/Orxonox.h
===================================================================
--- code/branches/FICN/src/orxonox/Orxonox.h	(revision 680)
+++ code/branches/FICN/src/orxonox/Orxonox.h	(revision 682)
@@ -12,4 +12,5 @@
 
 #include "OrxonoxPrereqs.h"
+#include "loader/LoaderPrereqs.h"
 #include "GraphicsEngine.h"
 
@@ -25,6 +26,4 @@
     PRESENTATION
   };
-
-  class OrxListener;
 
   class Orxonox
Index: code/branches/FICN/src/orxonox/OrxonoxPlatform.h
===================================================================
--- code/branches/FICN/src/orxonox/OrxonoxPlatform.h	(revision 682)
+++ code/branches/FICN/src/orxonox/OrxonoxPlatform.h	(revision 682)
@@ -0,0 +1,282 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      An unknown man from the Ogre development crew
+ *   Co-authors:
+ *      Reto Grieder (OGRE --> ORXONOX)
+ *
+ */
+
+/**
+ @file  OrxonoxPlatform.h
+ @brief Various constants for compiler, architecture and platform. It's a mere
+        copy of the file found in the Ogre source code (OgrePlatform.h).
+ */
+
+#ifndef _OrxonoxPlatform_H__
+#define _OrxonoxPlatform_H__
+
+namespace orxonox {
+/* Initial platform/compiler-related stuff to set.
+*/
+#define ORXONOX_PLATFORM_WIN32 1
+#define ORXONOX_PLATFORM_LINUX 2
+#define ORXONOX_PLATFORM_APPLE 3
+
+#define ORXONOX_COMPILER_MSVC 1
+#define ORXONOX_COMPILER_GNUC 2
+#define ORXONOX_COMPILER_BORL 3
+
+#define ORXONOX_ENDIAN_LITTLE 1
+#define ORXONOX_ENDIAN_BIG 2
+
+#define ORXONOX_ARCHITECTURE_32 1
+#define ORXONOX_ARCHITECTURE_64 2
+
+/* Finds the compiler type and version.
+*/
+#if defined( _MSC_VER )
+#  define ORXONOX_COMPILER ORXONOX_COMPILER_MSVC
+#  define ORXONOX_COMP_VER _MSC_VER
+
+#elif defined( __GNUC__ )
+#  define ORXONOX_COMPILER ORXONOX_COMPILER_GNUC
+#  define ORXONOX_COMP_VER (((__GNUC__)*100) + \
+        (__GNUC_MINOR__*10) + \
+        __GNUC_PATCHLEVEL__)
+
+#elif defined( __BORLANDC__ )
+#  define ORXONOX_COMPILER ORXONOX_COMPILER_BORL
+#  define ORXONOX_COMP_VER __BCPLUSPLUS__
+
+#else
+#  pragma error "No known compiler. Abort! Abort!"
+
+#endif
+
+/* See if we can use __forceinline or if we need to use __inline instead */
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#  if ORXONOX_COMP_VER >= 1200
+#    define FORCEINLINE __forceinline
+#  endif
+#elif defined(__MINGW32__)
+#  if !defined(FORCEINLINE)
+#    define FORCEINLINE __inline
+#  endif
+#else
+#  define FORCEINLINE __inline
+#endif
+
+/* Finds the current platform */
+
+#if defined( __WIN32__ ) || defined( _WIN32 )
+#  define ORXONOX_PLATFORM ORXONOX_PLATFORM_WIN32
+
+#elif defined( __APPLE_CC__)
+#  define ORXONOX_PLATFORM ORXONOX_PLATFORM_APPLE
+
+#else
+#  define ORXONOX_PLATFORM ORXONOX_PLATFORM_LINUX
+#endif
+
+    /* Find the arch type */
+#if defined(__x86_64__) || defined(_M_X64) || defined(__powerpc64__) || defined(__alpha__) || defined(__ia64__) || defined(__s390__) || defined(__s390x__)
+#  define ORXONOX_ARCH_TYPE ORXONOX_ARCHITECTURE_64
+#else
+#  define ORXONOX_ARCH_TYPE ORXONOX_ARCHITECTURE_32
+#endif
+
+// For generating compiler warnings - should work on any compiler
+// As a side note, if you start your message with 'Warning: ', the MSVC
+// IDE actually does catch a warning :)
+#define ORXONOX_QUOTE_INPLACE(x) # x
+#define ORXONOX_QUOTE(x) ORXONOX_QUOTE_INPLACE(x)
+#define ORXONOX_WARN( x )  message( __FILE__ "(" QUOTE( __LINE__ ) ") : " x "\n" )
+
+//----------------------------------------------------------------------------
+// Windows Settings
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
+
+// If we're not including this from a client build, specify that the stuff
+// should get exported. Otherwise, import it.
+#	 if defined( ORXONOX_STATIC_LIB )
+     // don't use exports/imports when building statically
+#    define _OrxonoxExport
+#    define _OrxonoxPrivate
+#  else
+#    if defined( ORXONOX_NONCLIENT_BUILD )
+#      define _OrxonoxExport __declspec( dllexport )
+#    else
+#      if defined( __MINGW32__ )
+#        define _OrxonoxExport
+#      else
+#       	define _OrxonoxExport __declspec( dllimport )
+#      endif
+#    endif
+#    define _OrxonoxPrivate
+#  endif
+// Win32 compilers use _DEBUG for specifying debug builds.
+#  ifdef _DEBUG
+#    define ORXONOX_DEBUG_MODE 1
+#  else
+#    define ORXONOX_DEBUG_MODE 0
+#  endif
+
+// Disable unicode support on MingW at the moment, poorly supported in stdlibc++
+// STLPORT fixes this though so allow if found
+// MinGW C++ Toolkit supports unicode and sets the define __MINGW32_TOOLKIT_UNICODE__ in _mingw.h
+#  if defined( __MINGW32__ ) && !defined(_STLPORT_VERSION)
+#    include<_mingw.h>
+#    if defined(__MINGW32_TOOLBOX_UNICODE__)
+#      define ORXONOX_UNICODE_SUPPORT 1
+#    else
+#      define ORXONOX_UNICODE_SUPPORT 0
+#    endif
+#  else
+#    define ORXONOX_UNICODE_SUPPORT 1
+#  endif
+
+#endif
+//----------------------------------------------------------------------------
+
+//----------------------------------------------------------------------------
+// Linux/Apple Settings
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_LINUX || ORXONOX_PLATFORM == ORXONOX_PLATFORM_APPLE
+
+// Enable GCC symbol visibility
+#  if defined( ORXONOX_GCC_VISIBILITY )
+#    define _OrxonoxExport  __attribute__ ((visibility("default")))
+#    define _OrxonoxPrivate __attribute__ ((visibility("hidden")))
+#  else
+#    define _OrxonoxExport
+#    define _OrxonoxPrivate
+#  endif
+
+// A quick define to overcome different names for the same function
+#  define stricmp strcasecmp
+
+// Unlike the Win32 compilers, Linux compilers seem to use DEBUG for when
+// specifying a debug build.
+// (??? this is wrong, on Linux debug builds aren't marked in any way unless
+// you mark it yourself any way you like it -- zap ???)
+#  ifdef DEBUG
+#    define ORXONOX_DEBUG_MODE 1
+#  else
+#    define ORXONOX_DEBUG_MODE 0
+#  endif
+
+/* FIXME: Check what this actually is and whether we need it or not
+#  if ORXONOX_PLATFORM == ORXONOX_PLATFORM_APPLE
+#    define ORXONOX_PLATFORM_LIB "OrxonoxPlatform.bundle"
+#  else
+// ORXONOX_PLATFORM_LINUX
+#    define ORXONOX_PLATFORM_LIB "libOrxonoxPlatform.so"
+#  endif
+*/
+
+// Always enable unicode support for the moment
+// Perhaps disable in old versions of gcc if necessary
+#  define ORXONOX_UNICODE_SUPPORT 1
+
+#endif
+
+//For apple, we always have a custom config.h file
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_APPLE
+#  include "config.h"
+#endif
+
+//----------------------------------------------------------------------------
+
+//----------------------------------------------------------------------------
+// Endian Settings
+// check for BIG_ENDIAN config flag, set ORXONOX_ENDIAN correctly
+#ifdef ORXONOX_CONFIG_BIG_ENDIAN
+#  define ORXONOX_ENDIAN ORXONOX_ENDIAN_BIG
+#else
+#  define ORXONOX_ENDIAN ORXONOX_ENDIAN_LITTLE
+#endif
+
+// Integer formats of fixed bit width
+typedef unsigned int uint32;
+typedef unsigned short uint16;
+typedef unsigned char uint8;
+
+}
+
+
+#if OGRE_COMPILER == OGRE_COMPILER_MSVC
+// Turn off warnings generated by long std templates
+// This warns about truncation to 255 characters in debug/browse info
+//#   pragma warning (disable : 4786)
+
+// Turn off warnings generated by long std templates
+// This warns about truncation to 255 characters in debug/browse info
+//#   pragma warning (disable : 4503)
+
+// disable: "conversion from 'double' to 'float', possible loss of data
+//#   pragma warning (disable : 4244)
+
+// disable: "truncation from 'double' to 'float'
+//#   pragma warning (disable : 4305)
+
+// disable: "<type> needs to have dll-interface to be used by clients'
+// Happens on STL member variables which are not public therefore is ok
+#   pragma warning (disable : 4251)
+
+// disable: "non dll-interface class used as base for dll-interface class"
+// Happens when deriving from Singleton because bug in compiler ignores
+// template export
+//#   pragma warning (disable : 4275)
+
+// disable: "C++ Exception Specification ignored"
+// This is because MSVC 6 did not implement all the C++ exception
+// specifications in the ANSI C++ draft.
+//#   pragma warning( disable : 4290 )
+
+// disable: "no suitable definition provided for explicit template
+// instantiation request" Occurs in VC7 for no justifiable reason on all
+// #includes of Singleton
+//#   pragma warning( disable: 4661)
+
+// disable: deprecation warnings when using CRT calls in VC8
+// These show up on all C runtime lib code in VC8, disable since they clutter
+// the warnings with things we may not be able to do anything about (e.g.
+// generated code from nvparse etc). I doubt very much that these calls
+// will ever be actually removed from VC anyway, it would break too much code.
+//#	pragma warning( disable: 4996)
+
+// disable: "conditional expression constant", always occurs on 
+// OGRE_MUTEX_CONDITIONAL when no threading enabled
+//#   pragma warning (disable : 201)
+
+#endif
+
+
+// hack for the usleep/Sleep problem
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
+#  include <windows.h>
+#  define usleep(x) Sleep((x)/1000)
+#elif ORXONOX_PLATFORM == ORXONOX_PLATFORM_LINUX
+#  include <unistd.h>
+#endif
+
+
+#endif /* _OrxonoxPlatform_H__ */
Index: code/branches/FICN/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/FICN/src/orxonox/OrxonoxPrereqs.h	(revision 680)
+++ code/branches/FICN/src/orxonox/OrxonoxPrereqs.h	(revision 682)
@@ -20,5 +20,5 @@
  *
  *   Author:
- *      Reto Grieder, (C) 2007
+ *      Reto Grieder
  *   Co-authors:
  *      ...
@@ -27,6 +27,6 @@
 
 /**
- @file  OrxonoxPrereq.cc
- @brief Contains all the necessary forward declarations for all classes, structs and enums.
+ @file  OrxonoxPrereq.h
+ @brief Contains all the necessary forward declarations for all classes and structs.
  */
 
@@ -34,18 +34,9 @@
 #define _OrxonoxPrereqs_H__
 
-// hack for the usleep/Sleep problem
-#ifdef WIN32
-#include <windows.h>
-#define usleep(x) Sleep((x)/1000)
-#else
-#include <unistd.h>
-#endif
+#include "OrxonoxPlatform.h"
 
 // classes that have not yet been put into a namespace
 class InputManager;
-class SignalHandler;
 class SpaceShipSteering;
-template <class T>
-class String2Number;
 
 namespace orxonox {
@@ -54,6 +45,4 @@
   class BaseObject;
   class Camera;
-  template <class T>
-  class ClassFactory;
   class Entity;
   class GraphicsEngine;
@@ -75,32 +64,4 @@
   class WorldEntity;
 
-  // from core library
-  class ArgReader;
-  class BaseFactory;
-  class BaseMetaObjectListElement;
-  template <class T>
-  class ClassFactory;
-  template <class T>
-  class ClassIdentifier;
-  class ConfigValueContainer;
-  class DebugLevel;
-  class Error;
-  class Factory;
-  class Identifier;
-  class IdentifierList;
-  class IdentifierListElement;
-  template <class T>
-  class Iterator;
-  class MetaObjectList;
-  template <class T>
-  class MetaObjectListElement;
-  template <class T>
-  class ObjectList;
-  template <class T>
-  class ObjectListElement;
-  class OrxonoxClass;
-  template <class T>
-  class SubclassIdentifier;
-
   class AmmunitionDump;
   class Bullet;
@@ -120,8 +81,4 @@
 namespace hud {
   class HUD;
-}
-
-namespace loader {
-  class LevelLoader;
 }
 
Index: code/branches/FICN/src/orxonox/core/ArgReader.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ArgReader.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/ArgReader.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Benjamin Knecht <beni_at_orxonox.net>
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /**
  @file  Argreader.h
@@ -10,7 +37,9 @@
 #include <string>
 
+#include "CorePrereqs.h"
+
 namespace orxonox {
 
-  class ArgReader
+  class _CoreExport ArgReader
   {
     public:
Index: code/branches/FICN/src/orxonox/core/ClassFactory.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ClassFactory.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/ClassFactory.h	(revision 682)
@@ -36,4 +36,9 @@
 #define _ClassFactory_H__
 
+#include <string>
+
+#include "CorePrereqs.h"
+
+#include "Factory.h"
 #include "Identifier.h"
 #include "Debug.h"
Index: code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc	(revision 680)
+++ code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc	(revision 682)
@@ -27,7 +27,8 @@
 
 #include <fstream>
-#include "ConfigValueContainer.h"
+
 #include "../../misc/Tokenizer.h"
 #include "../../misc/String2Number.h"
+#include "ConfigValueContainer.h"
 
 #define CONFIGFILEPATH "orxonox.ini"
Index: code/branches/FICN/src/orxonox/core/ConfigValueContainer.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ConfigValueContainer.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/ConfigValueContainer.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
     @file ConfigValueContainer.h
@@ -18,4 +45,6 @@
 #include <string>
 #include <list>
+
+#include "CorePrereqs.h"
 
 #include "OgreVector2.h"
@@ -41,5 +70,5 @@
         If there is no section, the section and the entry are added to the end of the config-file.
     */
-    class ConfigValueContainer
+    class _CoreExport ConfigValueContainer
     {
         public:
Index: code/branches/FICN/src/orxonox/core/CoreIncludes.h
===================================================================
--- code/branches/FICN/src/orxonox/core/CoreIncludes.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/CoreIncludes.h	(revision 682)
@@ -26,7 +26,4 @@
  */
 
-#ifndef _CoreIncludes_H__
-#define _CoreIncludes_H__
-
 /**
     @file CoreIncludes.h
@@ -39,4 +36,9 @@
     the of the class implementation, so it gets executed before main().
 */
+
+#ifndef _CoreIncludes_H__
+#define _CoreIncludes_H__
+
+#include "CorePrereqs.h"
 
 // All needed header-files
Index: code/branches/FICN/src/orxonox/core/CorePrereqs.h
===================================================================
--- code/branches/FICN/src/orxonox/core/CorePrereqs.h	(revision 682)
+++ code/branches/FICN/src/orxonox/core/CorePrereqs.h	(revision 682)
@@ -0,0 +1,92 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ @file  OrxonoxPrereq.cc
+ @brief Contains all the necessary forward declarations for all classes, structs and enums.
+ */
+
+#ifndef _CorePrereqs_H__
+#define _CorePrereqs_H__
+
+#include "../OrxonoxPlatform.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+#if (ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32) && !defined( CORE_STATIC_BUILD )
+#  ifdef CORE_SHARED_BUILD
+#    define _CoreExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _CoreExport
+#    else
+#      define _CoreExport __declspec(dllimport)
+#    endif
+#  endif
+#elif defined ( ORXONOX_GCC_VISIBILITY )
+#  define _CoreExport  __attribute__ ((visibility("default")))
+#else
+#  define _CoreExport
+#endif
+
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+class SignalHandler;
+
+namespace orxonox {
+  class ArgReader;
+  class BaseFactory;
+  class BaseMetaObjectListElement;
+  template <class T>
+  class ClassFactory;
+  template <class T>
+  class ClassIdentifier;
+  class ConfigValueContainer;
+  class DebugLevel;
+  class Error;
+  class Factory;
+  class Identifier;
+  class IdentifierList;
+  class IdentifierListElement;
+  template <class T>
+  class Iterator;
+  class MetaObjectList;
+  template <class T>
+  class MetaObjectListElement;
+  template <class T>
+  class ObjectList;
+  template <class T>
+  class ObjectListElement;
+  class OrxonoxClass;
+  template <class T>
+  class SubclassIdentifier;
+}
+
+#endif /* _CorePrereqs_H__ */
Index: code/branches/FICN/src/orxonox/core/Debug.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Debug.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/Debug.h	(revision 682)
@@ -37,6 +37,9 @@
 
 #include <stdio.h>
-
-int getSoftDebugLevel();
+#include <iostream>
+
+#include "CorePrereqs.h"
+
+extern "C" _CoreExport int getSoftDebugLevel();
 
 // DEFINE ERROR MODES
Index: code/branches/FICN/src/orxonox/core/DebugLevel.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/DebugLevel.cc	(revision 680)
+++ code/branches/FICN/src/orxonox/core/DebugLevel.cc	(revision 682)
@@ -27,6 +27,6 @@
 
 #include "CoreIncludes.h"
+#include "Debug.h"
 #include "DebugLevel.h"
-#include "Debug.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/core/DebugLevel.h
===================================================================
--- code/branches/FICN/src/orxonox/core/DebugLevel.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/DebugLevel.h	(revision 682)
@@ -1,4 +1,33 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 #ifndef _DebugLevel_H__
 #define _DebugLevel_H__
+
+#include "CorePrereqs.h"
 
 #include "OrxonoxClass.h"
@@ -6,5 +35,5 @@
 namespace orxonox
 {
-    class DebugLevel : public OrxonoxClass
+    class _CoreExport DebugLevel : public OrxonoxClass
     {
         public:
Index: code/branches/FICN/src/orxonox/core/Error.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Error.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/Error.h	(revision 682)
@@ -1,11 +1,39 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 #ifndef _Error_H__
 #define _Error_H__
 
-#include <iostream>
 #include <string>
+
+#include "CorePrereqs.h"
 
 namespace orxonox
 {
-	class Error
+	class _CoreExport Error
 	{
 	public:
Index: code/branches/FICN/src/orxonox/core/Factory.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/Factory.cc	(revision 680)
+++ code/branches/FICN/src/orxonox/core/Factory.cc	(revision 682)
@@ -31,8 +31,8 @@
 */
 
-#include "Factory.h"
 #include "Identifier.h"
 #include "Debug.h"
 #include "../objects/BaseObject.h"
+#include "Factory.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/core/Factory.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Factory.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/Factory.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
     @file Factory.h
@@ -20,8 +47,9 @@
 #include <string>
 
+#include "CorePrereqs.h"
+
 namespace orxonox
 {
     class BaseObject; // Forward declaration
-    class Identifier; // Forward declaration
 
     // ###############################
@@ -29,5 +57,5 @@
     // ###############################
     //! The Factory is used to map the name or the network ID of a class with its Identifier.
-    class Factory
+    class _CoreExport Factory
     {
         public:
@@ -53,5 +81,5 @@
     // ###############################
     //! Base-class of ClassFactory. Has to be defined separate because of circular dependencies.
-    class BaseFactory
+    class _CoreExport BaseFactory
     {
         public:
Index: code/branches/FICN/src/orxonox/core/Identifier.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Identifier.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/Identifier.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
     @file Identifier.h
@@ -25,12 +52,17 @@
 #define _Identifier_H__
 
-#include <iostream>
+#include <string>
 #include <map>
 
+#include "CorePrereqs.h"
+
+#include "ObjectList.h"
 #include "IdentifierList.h"
-#include "ObjectList.h"
 #include "Factory.h"
-#include "ConfigValueContainer.h"
 #include "Debug.h"
+// These two files would actually be need, but they would produce
+// circular dependencies. Anyway, it does compile without them
+//#include "OrxonoxClass.h"
+//#include "MetaObjectList.h"
 
 namespace orxonox
@@ -56,5 +88,5 @@
         You can't directly create an Identifier, it's just the base-class for ClassIdentifier.
     */
-    class Identifier
+    class _CoreExport Identifier
     {
         template <class T>
Index: code/branches/FICN/src/orxonox/core/IdentifierList.h
===================================================================
--- code/branches/FICN/src/orxonox/core/IdentifierList.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/IdentifierList.h	(revision 682)
@@ -1,3 +1,29 @@
-#ifndef _IdentifierList_H__
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
     @file IdentifierList.h
@@ -8,12 +34,13 @@
 */
 
+#ifndef _IdentifierList_H__
 #define _IdentifierList_H__
 
 #include <string>
 
+#include "CorePrereqs.h"
+
 namespace orxonox
 {
-    class Identifier; // Forward declaration
-
     //! The list-element of the IdentifierList
     class IdentifierListElement
@@ -27,5 +54,5 @@
 
     //! The IdentifierList contains Identifiers
-    class IdentifierList
+    class _CoreExport IdentifierList
     {
         public:
Index: code/branches/FICN/src/orxonox/core/Iterator.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Iterator.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/Iterator.h	(revision 682)
@@ -46,4 +46,7 @@
 #define _Iterator_H__
 
+#include "CorePrereqs.h"
+
+#include "ObjectList.h"
 #include "Debug.h"
 
Index: code/branches/FICN/src/orxonox/core/MetaObjectList.h
===================================================================
--- code/branches/FICN/src/orxonox/core/MetaObjectList.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/MetaObjectList.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
     @file MetaObjectList.h
@@ -10,4 +37,6 @@
 #ifndef _MetaObjectList_H__
 #define _MetaObjectList_H__
+
+#include "CorePrereqs.h"
 
 #include "ObjectList.h"
Index: code/branches/FICN/src/orxonox/core/ObjectList.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ObjectList.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/ObjectList.h	(revision 682)
@@ -38,8 +38,8 @@
 #define _ObjectList_H__
 
+#include "CorePrereqs.h"
+
 namespace orxonox
 {
-    class OrxonoxClass; // Forward declaration
-
     // ###############################
     // ###    ObjectListElement    ###
@@ -73,7 +73,4 @@
     // ###       ObjectList        ###
     // ###############################
-    template <class T>
-    class Iterator; // Forward declaration
-
     //! The ObjectList contains all objects of a given class.
     /**
Index: code/branches/FICN/src/orxonox/core/OrxonoxClass.h
===================================================================
--- code/branches/FICN/src/orxonox/core/OrxonoxClass.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/OrxonoxClass.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
     @file OrxonoxClass.h
@@ -10,8 +37,10 @@
 #define _OrxonoxClass_H__
 
+#include <string>
+
+#include "CorePrereqs.h"
+
+#include "MetaObjectList.h"
 #include "Identifier.h"
-#include "IdentifierList.h"
-#include "ObjectList.h"
-#include "MetaObjectList.h"
 
 namespace orxonox
@@ -22,5 +51,5 @@
         OrxonoxClass is needed to create the class-hierarchy at startup and to store the Identifier and the MetaObjectList.
     */
-    class OrxonoxClass
+    class _CoreExport OrxonoxClass
     {
         public:
Index: code/branches/FICN/src/orxonox/core/SignalHandler.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/SignalHandler.cc	(revision 680)
+++ code/branches/FICN/src/orxonox/core/SignalHandler.cc	(revision 682)
@@ -28,6 +28,6 @@
 #include <assert.h>
 
+#include "Debug.h"
 #include "SignalHandler.h"
-#include "Debug.h"
 
 SignalHandler * SignalHandler::singletonRef = NULL;
Index: code/branches/FICN/src/orxonox/core/SignalHandler.h
===================================================================
--- code/branches/FICN/src/orxonox/core/SignalHandler.h	(revision 680)
+++ code/branches/FICN/src/orxonox/core/SignalHandler.h	(revision 682)
@@ -1,2 +1,29 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Christoph Renner
+ *   Co-authors:
+ *      ...
+ *
+ */
+
 /*!
  * @file SignalHandler.h
@@ -8,4 +35,6 @@
 #include <list>
 #include <string>
+
+#include "CorePrereqs.h"
 
 typedef int (*SignalCallback)( void * someData );
@@ -58,5 +87,6 @@
 
 #else /* if defined __WIN32__ */
-class SignalHandler
+
+class _CoreExport SignalHandler
 {
  public:
