Index: code/branches/FICN/bin/run-script
===================================================================
--- code/branches/FICN/bin/run-script	(revision 530)
+++ code/branches/FICN/bin/run-script	(revision 531)
@@ -22,3 +22,3 @@
 	fi
 fi
-exec ./main
+exec ./main $1
Index: code/branches/FICN/run
===================================================================
--- code/branches/FICN/run	(revision 530)
+++ code/branches/FICN/run	(revision 531)
@@ -1,4 +1,4 @@
 #!/bin/bash
 cd bin
-./run-script
+./run-script $1
 cd ..
Index: code/branches/FICN/src/network/PacketDecoder.cc
===================================================================
--- code/branches/FICN/src/network/PacketDecoder.cc	(revision 530)
+++ code/branches/FICN/src/network/PacketDecoder.cc	(revision 531)
@@ -42,4 +42,6 @@
 
 PacketDecoder::PacketDecoder(){}
+
+PacketDecoder::~PacketDecoder(){}
 
 //call this function out of an instance of PacketDecoder
Index: code/branches/FICN/src/network/PacketManager.h
===================================================================
--- code/branches/FICN/src/network/PacketManager.h	(revision 530)
+++ code/branches/FICN/src/network/PacketManager.h	(revision 531)
@@ -45,4 +45,5 @@
 public:
 	PacketDecoder();
+  virtual ~PacketDecoder();
 	//call this function to decode, it calls the right decoding function below
 	bool elaborate( ENetPacket* packet, int clientId );
Index: code/branches/FICN/src/network/Synchronisable.cc
===================================================================
--- code/branches/FICN/src/network/Synchronisable.cc	(revision 530)
+++ code/branches/FICN/src/network/Synchronisable.cc	(revision 531)
@@ -11,4 +11,6 @@
 
 #include "Synchronisable.h"
+#include "orxonox/core/CoreIncludes.h"
+
 
 namespace network {
@@ -20,4 +22,5 @@
 Synchronisable::Synchronisable()
 {
+  RegisterRootObject(Synchronisable);
   static int idCounter=0;
   datasize=0;
Index: code/branches/FICN/src/orxonox/core/CoreIncludes.h
===================================================================
--- code/branches/FICN/src/orxonox/core/CoreIncludes.h	(revision 530)
+++ code/branches/FICN/src/orxonox/core/CoreIncludes.h	(revision 531)
@@ -57,5 +57,5 @@
 #define InternRegisterRootObject(ClassName) \
     if (orxonox::Identifier::isCreatingHierarchy() && !this->getParents()) \
-        this->setParents(new IdentifierList()); \
+        this->setParents(new orxonox::IdentifierList()); \
     InternRegisterObject(ClassName, true)
 
Index: code/branches/FICN/src/orxonox/objects/Entity.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Entity.cc	(revision 530)
+++ code/branches/FICN/src/orxonox/objects/Entity.cc	(revision 531)
@@ -40,3 +40,4 @@
     	}   	
    }
+   
 }
Index: code/branches/FICN/src/orxonox/objects/Entity.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Entity.h	(revision 530)
+++ code/branches/FICN/src/orxonox/objects/Entity.h	(revision 531)
@@ -4,4 +4,5 @@
 #include "BaseObject.h"
 #include "../../tinyxml/tinyxml.h"
+#include "network/Synchronisable.h"
 
 namespace orxonox
@@ -17,5 +18,4 @@
 
         private:
-            
 
     };
Index: code/branches/FICN/src/orxonox/orxonox.cc
===================================================================
--- code/branches/FICN/src/orxonox/orxonox.cc	(revision 530)
+++ code/branches/FICN/src/orxonox/orxonox.cc	(revision 531)
@@ -217,4 +217,5 @@
     //TODO: read config file
     //TODO: give config file to Ogre
+    
     if(argc >=2 && strcmp(argv[1], "server")==0)
     {
@@ -224,6 +225,9 @@
     {
       clientInit(path);
-    }
-    standalone(path);
+    } else if(argc >=2 && strcmp(argv[1], "presentation")==0)
+    {
+      playableServer(path);
+    } else
+      standalone(path);
   }
 
@@ -272,4 +276,32 @@
     createFrameListener();
     Factory::createClassHierarchy();
+    startRenderLoop();
+  }
+  
+  void Orxonox::playableServer(std::string path)
+  {
+    ogre_->setConfigPath(path);
+    ogre_->setup();
+    root_ = ogre_->getRoot();
+    defineResources();
+    setupRenderSystem();
+    createRenderWindow();
+    initializeResourceGroups();
+    createScene();
+    setupScene();
+    setupInputSystem();
+    Factory::createClassHierarchy();
+    createFrameListener();
+    try{
+    server_g = new network::Server(); // add port and bindadress
+    server_g->open(); // open server and create listener thread
+    if(ogre_ && ogre_->getRoot())
+      ogre_->getRoot()->addFrameListener(new network::ServerFrameListener()); // adds a framelistener for the server
+    std::cout << "network framelistener added" << std::endl;
+    } 
+    catch(exception &e)
+    {
+      std::cout << "There was a problem initialising the server :(" << std::endl;
+    }
     startRenderLoop();
   }
Index: code/branches/FICN/src/orxonox/orxonox.h
===================================================================
--- code/branches/FICN/src/orxonox/orxonox.h	(revision 530)
+++ code/branches/FICN/src/orxonox/orxonox.h	(revision 531)
@@ -42,4 +42,5 @@
       void clientInit(std::string path);
       void standalone(std::string path);
+      void playableServer(std::string path);
       void defineResources();
       void setupRenderSystem();
Index: code/branches/FICN/src/orxonox/spaceship_steering.cc
===================================================================
--- code/branches/FICN/src/orxonox/spaceship_steering.cc	(revision 530)
+++ code/branches/FICN/src/orxonox/spaceship_steering.cc	(revision 531)
@@ -35,5 +35,5 @@
 maxSpeedLoopRightLeft) {
 	
-	std::cout << "Steering was loaded"; 
+	std::cout << "Steering was loaded" << std::endl; 
   moveForward_ = 0;
   rotateUp_ = 0;
