Index: code/trunk/src/orxonox/Orxonox.cc
===================================================================
--- code/trunk/src/orxonox/Orxonox.cc	(revision 1633)
+++ code/trunk/src/orxonox/Orxonox.cc	(revision 1735)
@@ -138,8 +138,8 @@
     GraphicsEngine::getSingleton().destroy();
 
-    if (network::Client::getSingleton())
-      network::Client::destroySingleton();
+    if (client_g)
+      delete client_g;
     if (server_g)
-      delete network::Server::getSingleton();
+      delete server_g;
   }
 
@@ -363,7 +363,6 @@
     COUT(0) << "Loading level in server mode" << std::endl;
 
-    //server_g = new network::Server(serverPort_);
-    server_g = network::Server::createSingleton(serverPort_);
-
+    server_g = new network::Server(serverPort_);
+    COUT(0) << "Loading scene in server mode" << std::endl;
     if (!loadScene())
       return false;
@@ -382,8 +381,8 @@
 
     if (serverIp_.compare("") == 0)
-      client_g = network::Client::createSingleton();
+      client_g = new network::Client();
     else
 
-      client_g = network::Client::createSingleton(serverIp_, serverPort_);
+      client_g = new network::Client(serverIp_, serverPort_);
 
     if(!client_g->establishConnection())
@@ -525,5 +524,5 @@
 
     if (mode_ == CLIENT)
-      network::Client::getSingleton()->closeConnection();
+      client_g->closeConnection();
     else if (mode_ == SERVER)
       server_g->close();
Index: code/trunk/src/orxonox/objects/Ambient.h
===================================================================
--- code/trunk/src/orxonox/objects/Ambient.h	(revision 1633)
+++ code/trunk/src/orxonox/objects/Ambient.h	(revision 1735)
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport Ambient : public BaseObject, network::Synchronisable
+    class _OrxonoxExport Ambient : public BaseObject, public network::Synchronisable
     {
         public:
Index: code/trunk/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1633)
+++ code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1735)
@@ -43,6 +43,5 @@
 #include "core/XMLPort.h"
 #include "core/ConsoleCommand.h"
-
-#include "network/Client.h"
+#include "network/Host.h"
 
 #include "tools/ParticleInterface.h"
@@ -80,5 +79,5 @@
           return *it;
       }
-      return NULL;
+      return 0;
     }
 
@@ -165,13 +164,13 @@
     bool SpaceShip::create(){
       if(!myShip_){
-        if(network::Client::getSingleton() && objectID == network::Client::getSingleton()->getShipID())
+        if(network::Host::running())
+          COUT(3) << "this id: " << this->objectID << " myShipID: " << network::Host::getShipID() << std::endl;
+        if(network::Host::running() && objectID == network::Host::getShipID())
           myShip_=true;
         else
           this->setRadarObjectColour(this->getProjectileColour());
       }
-      if(Model::create())
-        this->init();
-      else
-        return false;
+      assert(Model::create());
+      this->init();
       return true;
     }
@@ -276,4 +275,5 @@
             // END of testing crosshair
         }
+        // END of testing crosshair
 
         createCamera();
@@ -320,5 +320,4 @@
     void SpaceShip::setCamera(const std::string& camera)
     {
-      myShip_=true; // TODO: this is only a hack
       camName_=camera;
       // change camera attributes here, if you want to ;)
@@ -326,6 +325,7 @@
 
     void SpaceShip::getFocus(){
-      COUT(4) << "requesting focus" << std::endl;
-      if(network::Client::getSingleton()==0 || network::Client::getSingleton()->getShipID()==objectID)
+      COUT(3) << "requesting focus" << std::endl;
+      //if(!network::Host::running() || network::Host::getShipID()==objectID)
+      if(myShip_)
         CameraHandler::getInstance()->requestFocus(cam_);
 
@@ -339,5 +339,5 @@
 //       COUT(4) << "begin camera creation" << std::endl;
       this->camNode_ = this->getNode()->createChildSceneNode(camName_);
-      COUT(4) << "position: (this)" << this->getNode()->getPosition() << std::endl;
+      COUT(3) << "position: (this)" << this->getNode()->getPosition() << std::endl;
       this->camNode_->setPosition(Vector3(-25,0,5));
 //      Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,-1,0));
@@ -349,11 +349,22 @@
       cam_->setTargetNode(this->getNode());
 //        cam->setPosition(Vector3(0,-350,0));
+//      Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,0,1));
+//      Quaternion q2 = Quaternion(Radian(Degree(90)),Vector3(0,1,0));
       Quaternion q1 = Quaternion(Radian(Degree(90)),Vector3(0,-1,0));
       Quaternion q2 = Quaternion(Radian(Degree(90)),Vector3(1,0,0));
-      this->camNode_->setOrientation(q2*q1);
-      if(network::Client::getSingleton()!=0 && network::Client::getSingleton()->getShipID()==objectID){
+
+       this->camNode_->setOrientation(q2*q1);
+      //if(!network::Host::running() || network::Host::getShipID()==objectID){ //TODO: check this
+      if(myShip_){
+        COUT(3) << "requesting focus for camera" << std::endl;
         this->setBacksync(true);
-        CameraHandler::getInstance()->requestFocus(cam_);
-      }
+        //CameraHandler::getInstance()->requestFocus(cam_);
+        if(this->isExactlyA(Class(SpaceShip))){
+          getFocus();
+          COUT(3) << "getting focus for obj id: " << objectID << std::endl;
+        }else
+          COUT(3) << "not getting focus (not exactly spaceship) for obj id: " << objectID << std::endl;
+      }else
+        COUT(3) << "not getting focus (not my ship) for obj id: " << objectID << std::endl;
     }
 
@@ -392,7 +403,8 @@
         XMLPortParamLoadOnly(SpaceShip, "rotDamp", setRotDamp, xmlelement, mode);
 
+        myShip_=true; //TODO: this is a hack
         SpaceShip::create();
-        if (this->isExactlyA(Class(SpaceShip)))
-            getFocus();
+        /*if (this->isExactlyA(Class(SpaceShip)))
+            getFocus();*/
     }
 
