Index: code/branches/input/src/core/BaseObject.cc
===================================================================
--- code/branches/input/src/core/BaseObject.cc	(revision 1546)
+++ code/branches/input/src/core/BaseObject.cc	(revision 1629)
@@ -45,11 +45,15 @@
         @brief Constructor: Registers the object in the BaseObject-list.
     */
-    BaseObject::BaseObject() :
-      bActive_(true),
-      bVisible_(true),
-      level_(0),
-      namespace_(0)
+    BaseObject::BaseObject() : bInitialized_(false)
     {
         RegisterRootObject(BaseObject);
+
+        this->bInitialized_ = true;
+
+        this->bActive_ = true;
+        this->bVisible_ = true;
+
+        this->level_ = 0;
+        this->namespace_ = 0;
     }
 
@@ -59,15 +63,4 @@
     BaseObject::~BaseObject()
     {
-    }
-
-    /**
-        @brief load general xml paramters
-    */
-    void BaseObject::loadParams(TiXmlElement* xmlElem)
-    {
-        if (xmlElem->Attribute("name"))
-        {
-            this->setName(xmlElem->Attribute("name"));
-        }
     }
 
@@ -81,4 +74,6 @@
     {
         XMLPortParam(BaseObject, "name", setName, getName, xmlelement, mode);
+        XMLPortParam(BaseObject, "visible", setVisible, isVisible, xmlelement, mode);
+        XMLPortParam(BaseObject, "active", setActive, isActive, xmlelement, mode);
     }
 
Index: code/branches/input/src/core/BaseObject.h
===================================================================
--- code/branches/input/src/core/BaseObject.h	(revision 1546)
+++ code/branches/input/src/core/BaseObject.h	(revision 1629)
@@ -47,9 +47,13 @@
     class _CoreExport BaseObject : virtual public OrxonoxClass
     {
+        friend class WorldEntity;
+
         public:
             BaseObject();
             virtual ~BaseObject();
-            virtual void loadParams(TiXmlElement* xmlElem);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+            /** @brief Returns if the object was initialized (passed the object registration). @return True was the object is initialized */
+            inline bool isInitialized() const { return this->bInitialized_; }
 
             /** @brief Sets the name of the object. @param name The name */
@@ -61,14 +65,14 @@
 
             /** @brief Sets the state of the objects activity. @param bActive True = active */
-            inline void setActivity(bool bActive) { this->bActive_ = bActive; this->changedActivity(); }
+            inline void setActive(bool bActive) { this->bActive_ = bActive; this->changedActivity(); }
             /** @brief Returns the state of the objects activity. @return The state of the activity */
-            inline const bool isActive() const { return this->bActive_; }
+            inline bool isActive() const { return this->bActive_; }
             /** @brief This function gets called if the activity of the object changes. */
             virtual void changedActivity() {}
 
             /** @brief Sets the state of the objects visibility. @param bVisible True = visible */
-            inline void setVisibility(bool bVisible) { this->bVisible_ = bVisible; this->changedVisibility(); }
+            inline void setVisible(bool bVisible) { this->bVisible_ = bVisible; this->changedVisibility(); }
             /** @brief Returns the state of the objects visibility. @return The state of the visibility */
-            inline const bool isVisible() const { return this->bVisible_; }
+            inline bool isVisible() const { return this->bVisible_; }
             /** @brief This function gets called if the visibility of the object changes. */
             virtual void changedVisibility() {}
@@ -90,4 +94,5 @@
         private:
             std::string name_;                          //!< The name of the object
+            bool bInitialized_;                         //!< True if the object was initialized (passed the object registration)
             bool bActive_;                              //!< True = the object is active
             bool bVisible_;                             //!< True = the object is visible
Index: code/branches/input/src/core/CMakeLists.txt
===================================================================
--- code/branches/input/src/core/CMakeLists.txt	(revision 1546)
+++ code/branches/input/src/core/CMakeLists.txt	(revision 1629)
@@ -53,5 +53,5 @@
 GET_TARGET_PROPERTY(TOLUA_EXE tolua LOCATION)
 ADD_CUSTOM_COMMAND(
-  OUTPUT tolua/tolua_bind.cc tolua/tolua_bind.h
+  OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/tolua/tolua_bind.cc
   COMMAND ${TOLUA_EXE} -n core -o ../../src/core/tolua/tolua_bind.cc -H ../../src/core/tolua/tolua_bind.h ../../src/core/tolua/tolua.pkg
   DEPENDS tolua
@@ -65,7 +65,7 @@
   ${OGRE_LIBRARIES}
   cpptcl
+  ois_orxonox
   tinyxml
   tolualib
-  ois
   util
   ${Boost_thread_LIBRARIES}
Index: code/branches/input/src/core/CommandEvaluation.cc
===================================================================
--- code/branches/input/src/core/CommandEvaluation.cc	(revision 1546)
+++ code/branches/input/src/core/CommandEvaluation.cc	(revision 1629)
@@ -78,5 +78,5 @@
         if (this->bEvaluatedParams_ && this->function_)
         {
-            COUT(4) << "CE_execute (evaluation): " << this->function_->getName() << " " << this->param_[0] << " " << this->param_[1] << " " << this->param_[2] << " " << this->param_[3] << " " << this->param_[4] << std::endl;
+            COUT(5) << "CE_execute (evaluation): " << this->function_->getName() << " " << this->param_[0] << " " << this->param_[1] << " " << this->param_[2] << " " << this->param_[3] << " " << this->param_[4] << std::endl;
             (*this->function_)(this->param_[0], this->param_[1], this->param_[2], this->param_[3], this->param_[4]);
             return true;
Index: code/branches/input/src/core/ConsoleCommand.h
===================================================================
--- code/branches/input/src/core/ConsoleCommand.h	(revision 1546)
+++ code/branches/input/src/core/ConsoleCommand.h	(revision 1629)
@@ -33,5 +33,5 @@
 
 #include "Executor.h"
-#include "ClassManager.h"
+#include "Identifier.h"
 #include "CommandExecutor.h"
 #include "ArgumentCompletionFunctions.h"
Index: code/branches/input/src/core/Executor.cc
===================================================================
--- code/branches/input/src/core/Executor.cc	(revision 1546)
+++ code/branches/input/src/core/Executor.cc	(revision 1629)
@@ -30,4 +30,5 @@
 #include "Executor.h"
 #include "util/Math.h"
+#include "util/Convert.h"
 #include "Language.h"
 
@@ -136,5 +137,5 @@
             {
                 std::string paramnumber;
-                if (!Convert::ToString(&paramnumber, param))
+                if (!convertValue(&paramnumber, param))
                     return (*this);
 
Index: code/branches/input/src/core/Iterator.h
===================================================================
--- code/branches/input/src/core/Iterator.h	(revision 1546)
+++ code/branches/input/src/core/Iterator.h	(revision 1629)
@@ -92,4 +92,5 @@
             {
                 this->element_ = element;
+                return *this;
             }
 
Index: code/branches/input/src/core/Loader.cc
===================================================================
--- code/branches/input/src/core/Loader.cc	(revision 1546)
+++ code/branches/input/src/core/Loader.cc	(revision 1629)
@@ -116,4 +116,5 @@
         Script::run();*/
         Script* lua = Script::getInstance();
+        lua->clearLuaOutput();
         lua->loadFile(level->getFile(), true);
         lua->run();
Index: code/branches/input/src/core/Script.cc
===================================================================
--- code/branches/input/src/core/Script.cc	(revision 1546)
+++ code/branches/input/src/core/Script.cc	(revision 1629)
@@ -39,5 +39,5 @@
 }
 
-#include "tolua++.h"
+#include "tolua/tolua++.h"
 #include "tolua/tolua_bind.h"
 
Index: code/branches/input/src/core/Script.h
===================================================================
--- code/branches/input/src/core/Script.h	(revision 1546)
+++ code/branches/input/src/core/Script.h	(revision 1629)
@@ -72,4 +72,5 @@
     inline std::string getLuaOutput() { return output_; };
     //inline std::string* getFileString() { return &fileString_; };
+    inline void clearLuaOutput() { output_ = ""; }
 
     unsigned int getNextQuote(const std::string& text, unsigned int start);
Index: code/branches/input/src/core/TclThreadManager.h
===================================================================
--- code/branches/input/src/core/TclThreadManager.h	(revision 1546)
+++ code/branches/input/src/core/TclThreadManager.h	(revision 1629)
@@ -45,6 +45,4 @@
 namespace orxonox
 {
-    class boost::thread;
-
     struct _CoreExport TclInterpreterBundle
     {
Index: code/branches/input/src/core/XMLPort.h
===================================================================
--- code/branches/input/src/core/XMLPort.h	(revision 1546)
+++ code/branches/input/src/core/XMLPort.h	(revision 1629)
@@ -152,4 +152,6 @@
                                 this->parseResult_ = PR_waiting_for_default_values;
                         }
+                        else
+                            this->parseResult_ = PR_waiting_for_default_values;
                     }
                     catch (ticpp::Exception& ex)
Index: code/branches/input/src/core/input/InputInterfaces.h
===================================================================
--- code/branches/input/src/core/input/InputInterfaces.h	(revision 1546)
+++ code/branches/input/src/core/input/InputInterfaces.h	(revision 1629)
@@ -37,5 +37,7 @@
 #include "core/CorePrereqs.h"
 
-#include "ois/OIS.h"
+#include "src/ois/OISKeyboard.h"
+#include "src/ois/OISMouse.h"
+#include "src/ois/OISJoyStick.h"
 #include "util/Math.h"
 
@@ -47,91 +49,91 @@
     enum Enum
     {
-      Unassigned    = OIS::KC_UNASSIGNED,  
-      Escape        = OIS::KC_ESCAPE,      
-      NumRow1       = OIS::KC_1,           
-      NumRow2       = OIS::KC_2,           
-      NumRow3       = OIS::KC_3,           
-      NumRow4       = OIS::KC_4,           
-      NumRow5       = OIS::KC_5,           
-      NumRow6       = OIS::KC_6,           
-      NumRow7       = OIS::KC_7,           
-      NumRow8       = OIS::KC_8,           
-      NumRow9       = OIS::KC_9,           
-      NumRow0       = OIS::KC_0,           
+      Unassigned    = OIS::KC_UNASSIGNED,
+      Escape        = OIS::KC_ESCAPE,
+      NumRow1       = OIS::KC_1,
+      NumRow2       = OIS::KC_2,
+      NumRow3       = OIS::KC_3,
+      NumRow4       = OIS::KC_4,
+      NumRow5       = OIS::KC_5,
+      NumRow6       = OIS::KC_6,
+      NumRow7       = OIS::KC_7,
+      NumRow8       = OIS::KC_8,
+      NumRow9       = OIS::KC_9,
+      NumRow0       = OIS::KC_0,
       Minus         = OIS::KC_MINUS,           // - on main keyboard
-      Equals        = OIS::KC_EQUALS,      
+      Equals        = OIS::KC_EQUALS,
       Back          = OIS::KC_BACK,            // backspace
-      Tab           = OIS::KC_TAB,         
-      Q             = OIS::KC_Q,           
-      W             = OIS::KC_W,           
-      E             = OIS::KC_E,           
-      R             = OIS::KC_R,           
-      T             = OIS::KC_T,           
-      Y             = OIS::KC_Y,           
-      U             = OIS::KC_U,           
-      I             = OIS::KC_I,           
-      O             = OIS::KC_O,           
-      P             = OIS::KC_P,           
-      LeftBracket   = OIS::KC_LBRACKET,    
-      RightBracket  = OIS::KC_RBRACKET,    
+      Tab           = OIS::KC_TAB,
+      Q             = OIS::KC_Q,
+      W             = OIS::KC_W,
+      E             = OIS::KC_E,
+      R             = OIS::KC_R,
+      T             = OIS::KC_T,
+      Y             = OIS::KC_Y,
+      U             = OIS::KC_U,
+      I             = OIS::KC_I,
+      O             = OIS::KC_O,
+      P             = OIS::KC_P,
+      LeftBracket   = OIS::KC_LBRACKET,
+      RightBracket  = OIS::KC_RBRACKET,
       Return        = OIS::KC_RETURN,          // Enter on main keyboard
-      LeftControl   = OIS::KC_LCONTROL,    
-      A             = OIS::KC_A,           
-      S             = OIS::KC_S,           
-      D             = OIS::KC_D,           
-      F             = OIS::KC_F,           
-      G             = OIS::KC_G,           
-      H             = OIS::KC_H,           
-      J             = OIS::KC_J,           
-      K             = OIS::KC_K,           
-      L             = OIS::KC_L,           
-      Semicolon     = OIS::KC_SEMICOLON,   
-      Apostrophe    = OIS::KC_APOSTROPHE,  
+      LeftControl   = OIS::KC_LCONTROL,
+      A             = OIS::KC_A,
+      S             = OIS::KC_S,
+      D             = OIS::KC_D,
+      F             = OIS::KC_F,
+      G             = OIS::KC_G,
+      H             = OIS::KC_H,
+      J             = OIS::KC_J,
+      K             = OIS::KC_K,
+      L             = OIS::KC_L,
+      Semicolon     = OIS::KC_SEMICOLON,
+      Apostrophe    = OIS::KC_APOSTROPHE,
       Grave         = OIS::KC_GRAVE,           // accent
-      LeftShift     = OIS::KC_LSHIFT,      
-      Backslash     = OIS::KC_BACKSLASH,   
-      Z             = OIS::KC_Z,           
-      X             = OIS::KC_X,           
-      C             = OIS::KC_C,           
-      V             = OIS::KC_V,           
-      B             = OIS::KC_B,           
-      N             = OIS::KC_N,           
-      M             = OIS::KC_M,           
-      Comma         = OIS::KC_COMMA,       
+      LeftShift     = OIS::KC_LSHIFT,
+      Backslash     = OIS::KC_BACKSLASH,
+      Z             = OIS::KC_Z,
+      X             = OIS::KC_X,
+      C             = OIS::KC_C,
+      V             = OIS::KC_V,
+      B             = OIS::KC_B,
+      N             = OIS::KC_N,
+      M             = OIS::KC_M,
+      Comma         = OIS::KC_COMMA,
       Period        = OIS::KC_PERIOD,          // . on main keyboard
       Slash         = OIS::KC_SLASH,           // / on main keyboard
-      RightShift    = OIS::KC_RSHIFT,      
+      RightShift    = OIS::KC_RSHIFT,
       Multiply      = OIS::KC_MULTIPLY,        // * on numeric keypad
       LeftAlt       = OIS::KC_LMENU,           // left Alt
-      Space         = OIS::KC_SPACE,       
-      CapsLock      = OIS::KC_CAPITAL,     
-      F1            = OIS::KC_F1,          
-      F2            = OIS::KC_F2,          
-      F3            = OIS::KC_F3,          
-      F4            = OIS::KC_F4,          
-      F5            = OIS::KC_F5,          
-      F6            = OIS::KC_F6,          
-      F7            = OIS::KC_F7,          
-      F8            = OIS::KC_F8,          
-      F9            = OIS::KC_F9,          
-      F10           = OIS::KC_F10,         
-      Numlock       = OIS::KC_NUMLOCK,     
+      Space         = OIS::KC_SPACE,
+      CapsLock      = OIS::KC_CAPITAL,
+      F1            = OIS::KC_F1,
+      F2            = OIS::KC_F2,
+      F3            = OIS::KC_F3,
+      F4            = OIS::KC_F4,
+      F5            = OIS::KC_F5,
+      F6            = OIS::KC_F6,
+      F7            = OIS::KC_F7,
+      F8            = OIS::KC_F8,
+      F9            = OIS::KC_F9,
+      F10           = OIS::KC_F10,
+      Numlock       = OIS::KC_NUMLOCK,
       Scrolllock    = OIS::KC_SCROLL,          // Scroll Lock
-      Numpad7       = OIS::KC_NUMPAD7,     
-      Numpad8       = OIS::KC_NUMPAD8,     
-      Numpad9       = OIS::KC_NUMPAD9,     
+      Numpad7       = OIS::KC_NUMPAD7,
+      Numpad8       = OIS::KC_NUMPAD8,
+      Numpad9       = OIS::KC_NUMPAD9,
       NumpadSubtract= OIS::KC_SUBTRACT,        // - on numeric keypad
-      Numpad4       = OIS::KC_NUMPAD4,     
-      Numpad5       = OIS::KC_NUMPAD5,     
-      Numpad6       = OIS::KC_NUMPAD6,     
+      Numpad4       = OIS::KC_NUMPAD4,
+      Numpad5       = OIS::KC_NUMPAD5,
+      Numpad6       = OIS::KC_NUMPAD6,
       NumpadAdd     = OIS::KC_ADD,             // + on numeric keypad
-      Numpad1       = OIS::KC_NUMPAD1,     
-      Numpad2       = OIS::KC_NUMPAD2,     
-      Numpad3       = OIS::KC_NUMPAD3,     
-      Numpad0       = OIS::KC_NUMPAD0,     
+      Numpad1       = OIS::KC_NUMPAD1,
+      Numpad2       = OIS::KC_NUMPAD2,
+      Numpad3       = OIS::KC_NUMPAD3,
+      Numpad0       = OIS::KC_NUMPAD0,
       NumpadPeriod  = OIS::KC_DECIMAL,         // . on numeric keypad
       LessThan      = OIS::KC_OEM_102,         // < > | on UK/Germany keyboards
-      F11           = OIS::KC_F11,         
-      F12           = OIS::KC_F12,         
+      F11           = OIS::KC_F11,
+      F12           = OIS::KC_F12,
       F13           = OIS::KC_F13,             //                     (NEC PC98)
       F14           = OIS::KC_F14,             //                     (NEC PC98)
@@ -154,5 +156,5 @@
       NextTrack     = OIS::KC_NEXTTRACK,       // Next Track
       NumpadEnter   = OIS::KC_NUMPADENTER,     // Enter on numeric keypad
-      RightControl  = OIS::KC_RCONTROL,    
+      RightControl  = OIS::KC_RCONTROL,
       Mute          = OIS::KC_MUTE,            // Mute
       Calculator    = OIS::KC_CALCULATOR,      // Calculator
@@ -164,5 +166,5 @@
       NumpadComma   = OIS::KC_NUMPADCOMMA,     // , on numeric keypad (NEC PC98)
       Divide        = OIS::KC_DIVIDE,          // / on numeric keypad
-      SYSRQ         = OIS::KC_SYSRQ,       
+      SYSRQ         = OIS::KC_SYSRQ,
       RightAlt      = OIS::KC_RMENU,           // right Alt
       Pause         = OIS::KC_PAUSE,           // Pause
@@ -254,5 +256,5 @@
 		std::vector<Vector3> mVectors;
   };*/
-  
+
   /**
   * Helper struct to determine which handlers of an object (can implement
Index: code/branches/input/src/core/input/InputManager.cc
===================================================================
--- code/branches/input/src/core/input/InputManager.cc	(revision 1546)
+++ code/branches/input/src/core/input/InputManager.cc	(revision 1629)
@@ -36,4 +36,5 @@
 
 #include <limits.h>
+
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
@@ -42,8 +43,12 @@
 #include "core/ConsoleCommand.h"
 #include "core/Shell.h"               // hack!
+
 #include "InputBuffer.h"
 #include "KeyBinder.h"
 #include "KeyDetector.h"
 #include "CalibratorCallback.h"
+
+#include "src/ois/OISException.h"
+#include "src/ois/OISInputManager.h"
 
 namespace orxonox
@@ -650,5 +655,5 @@
       activeHandlers_[iHandler].first->tickInput(dt, activeHandlers_[iHandler].second);
   }
-    
+
   void InputManager::_completeCalibration()
   {
Index: code/branches/input/src/core/input/InputManager.h
===================================================================
--- code/branches/input/src/core/input/InputManager.h	(revision 1546)
+++ code/branches/input/src/core/input/InputManager.h	(revision 1629)
@@ -41,5 +41,4 @@
 #include <vector>
 
-#include "ois/OIS.h"
 #include "util/Math.h"
 #include "core/OrxonoxClass.h"
Index: code/branches/input/src/core/input/KeyBinder.cc
===================================================================
--- code/branches/input/src/core/input/KeyBinder.cc	(revision 1546)
+++ code/branches/input/src/core/input/KeyBinder.cc	(revision 1629)
@@ -234,8 +234,8 @@
   void KeyBinder::setConfigValues()
   {
-    SetConfigValueGeneric(KeyBinder, analogThreshold_, 0.01f)  .description("Threshold for analog axes until which the state is 0.");
+    SetConfigValueGeneric(KeyBinder, analogThreshold_, 0.05f)  .description("Threshold for analog axes until which the state is 0.");
     SetConfigValueGeneric(KeyBinder, mouseSensitivity_, 1.0f)  .description("Mouse sensitivity.");
     SetConfigValueGeneric(KeyBinder, bDeriveMouseInput_, false).description("Whether or not to derive moues movement for the absolute value.");
-    SetConfigValueGeneric(KeyBinder, derivePeriod_, 0.5f).description("Accuracy of the mouse input deriver. The higher the more precise, but laggier.");
+    SetConfigValueGeneric(KeyBinder, derivePeriod_, 0.05f).description("Accuracy of the mouse input deriver. The higher the more precise, but laggier.");
     SetConfigValueGeneric(KeyBinder, mouseSensitivityDerived_, 1.0f).description("Mouse sensitivity if mouse input is derived.");
     SetConfigValueGeneric(KeyBinder, bClipMouse_, true).description("Whether or not to clip absolute value of mouse in non derive mode.");
