Index: code/trunk/src/orxonox/objects/Camera.cc
===================================================================
--- code/trunk/src/orxonox/objects/Camera.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/Camera.cc	(revision 1021)
@@ -6,5 +6,4 @@
 #include <OgreSceneManager.h>
 #include <OgreSceneNode.h>
-#include <OgreRoot.h>
 #include <OgreRenderWindow.h>
 #include <OgreViewport.h>
@@ -69,5 +68,5 @@
 
         // FIXME: unused var
-        Ogre::Viewport* vp = orxonox::Orxonox::getSingleton()->getOgrePointer()->getRoot()->getAutoCreatedWindow()->addViewport(cam);
+        Ogre::Viewport* vp = orxonox::Orxonox::getSingleton()->getOgrePointer()->getRenderWindow()->addViewport(cam);
 
 
Index: code/trunk/src/orxonox/objects/Fighter.cc
===================================================================
--- code/trunk/src/orxonox/objects/Fighter.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/Fighter.cc	(revision 1021)
@@ -37,7 +37,8 @@
 #include "util/tinyxml/tinyxml.h"
 #include "util/String2Number.h"
-#include "../core/CoreIncludes.h"
-#include "../Orxonox.h"
-#include "../particle/ParticleInterface.h"
+#include "core/CoreIncludes.h"
+#include "Orxonox.h"
+#include "InputHandler.h"
+#include "particle/ParticleInterface.h"
 #include "weapon/AmmunitionDump.h"
 #include "weapon/BarrelGun.h"
@@ -207,5 +208,5 @@
 
             node->attachObject(cam);
-            Orxonox::getSingleton()->getOgrePointer()->getRoot()->getAutoCreatedWindow()->addViewport(cam);
+            Orxonox::getSingleton()->getOgrePointer()->getRenderWindow()->addViewport(cam);
     	}
     }
@@ -254,7 +255,7 @@
         if (!this->setMouseEventCallback_)
         {
-            if (Orxonox::getSingleton()->getMouse())
+            if (InputHandler::getSingleton()->getMouse())
             {
-                Orxonox::getSingleton()->getMouse()->setEventCallback(this);
+                InputHandler::getSingleton()->getMouse()->setEventCallback(this);
                 this->setMouseEventCallback_ = true;
             }
@@ -263,6 +264,6 @@
         WorldEntity::tick(dt);
 
-        OIS::Keyboard* mKeyboard = Orxonox::getSingleton()->getKeyboard();
-        OIS::Mouse* mMouse = Orxonox::getSingleton()->getMouse();
+        OIS::Keyboard* mKeyboard = InputHandler::getSingleton()->getKeyboard();
+        OIS::Mouse* mMouse = InputHandler::getSingleton()->getMouse();
 
         mKeyboard->capture();
Index: code/trunk/src/orxonox/objects/Model.cc
===================================================================
--- code/trunk/src/orxonox/objects/Model.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/Model.cc	(revision 1021)
@@ -44,4 +44,5 @@
     {
         RegisterObject(Model);
+        registerAllVariables();
     }
 
@@ -63,5 +64,6 @@
     /**
         @brief XML loading and saving.
-        @param xmlelement The XML-element
+    @p
+    aram xmlelement The XML-element
         @param loading Loading (true) or saving (false)
         @return The XML-element
@@ -82,4 +84,5 @@
 
     bool Model::create(){
+      WorldEntity::create();
       if(meshSrc_.compare("")!=0){
         this->mesh_.setMesh(meshSrc_);
@@ -87,10 +90,10 @@
         COUT(4) << "Loader: Created model" << std::endl;
       }
-      registerAllVariables();
       return true;
     }
 
     void Model::registerAllVariables(){
-//      registerVar(&meshSrc_, meshSrc_.length() + 1, network::STRING);
+      WorldEntity::registerAllVariables();
+      registerVar(&meshSrc_, meshSrc_.length() + 1, network::STRING);
     }
 }
Index: code/trunk/src/orxonox/objects/Model.h
===================================================================
--- code/trunk/src/orxonox/objects/Model.h	(revision 978)
+++ code/trunk/src/orxonox/objects/Model.h	(revision 1021)
@@ -22,8 +22,10 @@
             bool create();
 
+        protected:
+            void registerAllVariables();
+            
         private:
             std::string meshSrc_;
             Mesh mesh_;
-            void registerAllVariables();
     };
 }
Index: code/trunk/src/orxonox/objects/NPC.cc
===================================================================
--- code/trunk/src/orxonox/objects/NPC.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/NPC.cc	(revision 1021)
@@ -85,5 +85,5 @@
   void NPC::tick(float dt)
   {
-
+    update();
     this->setVelocity(0.995*this->getVelocity() + this->getAcceleration()*dt);
     this->translate(this->getVelocity()*dt);
Index: code/trunk/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1021)
@@ -39,8 +39,9 @@
 #include "util/String2Number.h"
 #include "util/Math.h"
-#include "../core/CoreIncludes.h"
-#include "../core/Debug.h"
-#include "../Orxonox.h"
-#include "../particle/ParticleInterface.h"
+#include "core/CoreIncludes.h"
+#include "core/Debug.h"
+#include "Orxonox.h"
+#include "InputHandler.h"
+#include "particle/ParticleInterface.h"
 #include "Projectile.h"
 #include "core/XMLPort.h"
@@ -55,4 +56,5 @@
     {
         RegisterObject(SpaceShip);
+        this->registerAllVariables();
 
         this->setConfigValues();
@@ -124,6 +126,7 @@
         this->brakeLoop(loop);
 */
-        this->init();
-
+//         this->create();
+
+        
         COUT(3) << "Info: SpaceShip was loaded" << std::endl;
     }
@@ -135,4 +138,19 @@
     }
 
+    bool SpaceShip::create(){
+      if(Model::create())
+        this->init();
+      else
+        return false;
+      return true;
+    }
+    
+    void SpaceShip::registerAllVariables(){
+      Model::registerAllVariables();
+      
+      
+      
+    }
+    
     void SpaceShip::init()
     {
@@ -202,4 +220,5 @@
     {
         Model::loadParams(xmlElem);
+        this->create();
 /*
         if (xmlElem->Attribute("forward") && xmlElem->Attribute("rotateupdown") && xmlElem->Attribute("rotaterightleft") && xmlElem->Attribute("looprightleft"))
@@ -267,5 +286,5 @@
 
         this->camNode_->attachObject(cam);
-        Orxonox::getSingleton()->getOgrePointer()->getRoot()->getAutoCreatedWindow()->addViewport(cam);
+        Orxonox::getSingleton()->getOgrePointer()->getRenderWindow()->addViewport(cam);
     }
 
@@ -400,7 +419,7 @@
         if (!this->setMouseEventCallback_)
         {
-            if (Orxonox::getSingleton()->getMouse())
+            if (InputHandler::getSingleton()->getMouse())
             {
-                Orxonox::getSingleton()->getMouse()->setEventCallback(this);
+                InputHandler::getSingleton()->getMouse()->setEventCallback(this);
                 this->setMouseEventCallback_ = true;
             }
@@ -427,6 +446,6 @@
         }
 
-        OIS::Keyboard* mKeyboard = Orxonox::getSingleton()->getKeyboard();
-        OIS::Mouse* mMouse = Orxonox::getSingleton()->getMouse();
+        OIS::Keyboard* mKeyboard = InputHandler::getSingleton()->getKeyboard();
+        OIS::Mouse* mMouse = InputHandler::getSingleton()->getMouse();
 
         mKeyboard->capture();
Index: code/trunk/src/orxonox/objects/SpaceShip.h
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.h	(revision 978)
+++ code/trunk/src/orxonox/objects/SpaceShip.h	(revision 1021)
@@ -21,4 +21,6 @@
             SpaceShip();
             ~SpaceShip();
+            bool create();
+            void registerAllVariables();
             void init();
             void setConfigValues();
Index: code/trunk/src/orxonox/objects/Tickable.cc
===================================================================
--- code/trunk/src/orxonox/objects/Tickable.cc	(revision 978)
+++ 	(revision )
@@ -1,42 +1,0 @@
-/*
- *   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:
- *      ...
- *
- */
-
-#include "OrxonoxStableHeaders.h"
-
-#include "core/CoreIncludes.h"
-#include "Tickable.h"
-
-namespace orxonox
-{
-    /**
-        @brief Constructor: Registers the object in the Tickable-list
-    */
-    Tickable::Tickable()
-    {
-        RegisterRootObject(Tickable);
-    }
-}
Index: code/trunk/src/orxonox/objects/Tickable.h
===================================================================
--- code/trunk/src/orxonox/objects/Tickable.h	(revision 978)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/*
- *   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 Tickable.h
-    @brief Definition of the Tickable interface.
-
-    The Tickable interface provides a tick(dt) function, that gets called every frame.
-    float dt is the time since the last frame in seconds.
-
-    Attention:
-    Classes derived from a Tickable that want to have a tick(dt) function on their part, MUST call the
-    parent::tick(dt) function explicit in their implementation of tick(dt) because it's a virtual function.
-*/
-
-#ifndef _Tickable_H__
-#define _Tickable_H__
-
-#include <OgreFrameListener.h>
-
-#include "../OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class TickFrameListener; // Forward declaration
-
-    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
-    class _OrxonoxExport Tickable : virtual public OrxonoxClass
-    {
-        public:
-            /**
-                @brief Gets called every frame.
-                @param dt The time since the last frame in seconds
-            */
-            virtual void tick(float dt) = 0;
-
-        protected:
-            Tickable();
-    };
-
-    //! The TickFrameListener calls the tick(dt) function of all Tickables every frame.
-    class _OrxonoxExport TickFrameListener : public Ogre::FrameListener
-    {
-        private:
-            /** @brief Gets called before a frame gets rendered. */
-            bool frameStarted(const Ogre::FrameEvent &evt)
-            {
-                // Iterate through all Tickables and call their tick(dt) function
-                for (Iterator<Tickable> it = ObjectList<Tickable>::start(); it; )
-                    (it++)->tick(evt.timeSinceLastFrame);
-
-                return FrameListener::frameStarted(evt);
-            }
-    };
-}
-
-#endif /* _Tickable_H__ */
Index: code/trunk/src/orxonox/objects/WorldEntity.cc
===================================================================
--- code/trunk/src/orxonox/objects/WorldEntity.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/WorldEntity.cc	(revision 1021)
@@ -49,15 +49,5 @@
         RegisterObject(WorldEntity);
 
-        if (Orxonox::getSingleton()->getSceneManager())
-        {
-            std::ostringstream name;
-            name << (WorldEntity::worldEntityCounter_s++);
-            this->setName("WorldEntity" + name.str());
-            this->node_ = Orxonox::getSingleton()->getSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
-        }
-        else
-        {
-            this->node_ = 0;
-        }
+        //create();
 
         this->bStatic_ = true;
@@ -67,4 +57,18 @@
         this->rotationRate_ = 0;
         this->momentum_ = 0;
+        
+        if (Orxonox::getSingleton()->getSceneManager())
+        {
+          std::ostringstream name;
+          name << (WorldEntity::worldEntityCounter_s++);
+          this->setName("WorldEntity" + name.str());
+          this->node_ = Orxonox::getSingleton()->getSceneManager()->getRootSceneNode()->createChildSceneNode(this->getName());
+        
+          registerAllVariables();
+        }
+        else
+        {
+          this->node_ = 0;
+        }
     }
 
@@ -89,4 +93,5 @@
 
         BaseObject::loadParams(xmlElem);
+        create();
 /*
         if (xmlElem->Attribute("position"))
@@ -185,12 +190,8 @@
     }
 
-    bool WorldEntity::create(){
-      registerAllVariables();
-      return true;
-    }
 
     void WorldEntity::registerAllVariables()
     {
-/*      // register coordinates
+      // register coordinates
       registerVar( (void*) &(this->getPosition().x), sizeof(this->getPosition().x), network::DATA);
       registerVar( (void*) &(this->getPosition().y), sizeof(this->getPosition().y), network::DATA);
@@ -200,7 +201,7 @@
       registerVar( (void*) &(this->getOrientation().x), sizeof(this->getOrientation().x), network::DATA);
       registerVar( (void*) &(this->getOrientation().y), sizeof(this->getOrientation().y), network::DATA);
-      registerVar( (void*) &(this->getOrientation().z), sizeof(this->getOrientation().z), network::DATA);*/
+      registerVar( (void*) &(this->getOrientation().z), sizeof(this->getOrientation().z), network::DATA);
       // not needed at the moment, because we don't have prediction yet
-      /*// register velocity_
+      // register velocity_
       registerVar( (void*) &(this->getVelocity().x), sizeof(this->getVelocity().x), network::DATA);
       registerVar( (void*) &(this->getVelocity().y), sizeof(this->getVelocity().y), network::DATA);
@@ -210,5 +211,5 @@
       registerVar( (void*) &(this->getRotationAxis().x), sizeof(this->getRotationAxis().x), network::DATA);
       registerVar( (void*) &(this->getRotationAxis().y), sizeof(this->getRotationAxis().y), network::DATA);
-      registerVar( (void*) &(this->getRotationAxis().z), sizeof(this->getRotationAxis().z), network::DATA);*/
+      registerVar( (void*) &(this->getRotationAxis().z), sizeof(this->getRotationAxis().z), network::DATA);
     }
 
Index: code/trunk/src/orxonox/objects/WorldEntity.h
===================================================================
--- code/trunk/src/orxonox/objects/WorldEntity.h	(revision 978)
+++ code/trunk/src/orxonox/objects/WorldEntity.h	(revision 1021)
@@ -12,10 +12,10 @@
 //#include "util/tinyxml/tinyxml.h"
 #include "core/BaseObject.h"
-#include "Tickable.h"
+#include "core/Tickable.h"
 #include "../tools/Mesh.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport WorldEntity : public BaseObject, public Tickable//, public network::Synchronisable
+    class _OrxonoxExport WorldEntity : public BaseObject, public Tickable, public network::Synchronisable
     {
         public:
@@ -26,5 +26,5 @@
             virtual void loadParams(TiXmlElement* xmlElem);
             virtual void XMLPort(Element& xmlelement, bool loading);
-            bool create();
+            inline bool create(){ return true; }
 
             void attachWorldEntity(WorldEntity* entity);
Index: code/trunk/src/orxonox/objects/weapon/AmmunitionDump.cc
===================================================================
--- code/trunk/src/orxonox/objects/weapon/AmmunitionDump.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/weapon/AmmunitionDump.cc	(revision 1021)
@@ -45,4 +45,5 @@
   {
     RegisterObject(AmmunitionDump);
+    registerAllVariables();
 
     for (int i = 0; i < numberOfAmmos_; i++)
@@ -114,3 +115,13 @@
     return stock_[id];
   }
+  
+  void AmmunitionDump::registerAllVariables(){
+    registerVar( &numberOfAmmos_, sizeof(int), network::DATA);
+    
+    for (int i = 0; i < numberOfAmmos_; i++)
+    {
+      registerVar(&stock_[i], sizeof(int), network::DATA);
+      registerVar(&capacity_[i], sizeof(int), network::DATA);
+    }
+  }
 }
Index: code/trunk/src/orxonox/objects/weapon/AmmunitionDump.h
===================================================================
--- code/trunk/src/orxonox/objects/weapon/AmmunitionDump.h	(revision 978)
+++ code/trunk/src/orxonox/objects/weapon/AmmunitionDump.h	(revision 1021)
@@ -60,4 +60,5 @@
   protected:
     inline bool create() { return true; }
+    void registerAllVariables();
 
     int numberOfAmmos_;
Index: code/trunk/src/orxonox/objects/weapon/BulletManager.cc
===================================================================
--- code/trunk/src/orxonox/objects/weapon/BulletManager.cc	(revision 978)
+++ code/trunk/src/orxonox/objects/weapon/BulletManager.cc	(revision 1021)
@@ -39,4 +39,5 @@
   {
     RegisterObject(BulletManager);
+    registerAllVariables();
     bullets_ = new Bullet*[bulletsSize_];
   }
@@ -103,3 +104,10 @@
   }
 
+  void BulletManager::registerAllVariables(){
+    registerVar(&bulletsSize_, sizeof(int), network::DATA);
+    registerVar(&bulletsIndex_, sizeof(int), network::DATA);
+    // TODO we got a problem here:
+    // there is no possibility (so far) to synchronise pointers to objects
+  }
+  
 }
Index: code/trunk/src/orxonox/objects/weapon/BulletManager.h
===================================================================
--- code/trunk/src/orxonox/objects/weapon/BulletManager.h	(revision 978)
+++ code/trunk/src/orxonox/objects/weapon/BulletManager.h	(revision 1021)
@@ -39,5 +39,5 @@
 #include "util/tinyxml/tinyxml.h"
 #include "core/BaseObject.h"
-#include "../Tickable.h"
+#include "core/Tickable.h"
 
 namespace orxonox {
@@ -60,4 +60,5 @@
   protected:
     inline bool create() { return true; }
+    void registerAllVariables();
 
     // Bullet array
