Index: trunk/code/projects/colonet/lib/colonet_defs.h
===================================================================
--- trunk/code/projects/colonet/lib/colonet_defs.h	(revision 452)
+++ trunk/code/projects/colonet/lib/colonet_defs.h	(revision 453)
@@ -147,7 +147,7 @@
 #define SERVER_REPORT_POSITION_TO_ROBOT 0x55
 
 #define CLIENT_REQUEST_ROBOT_POSITIONS 0x56
-#define CLIENT_ASSIGN_POSITION_TO_ROBOT_ID 0x57
+#define CLIENT_ASSIGN_ROBOT_ID 0x57
 
 /* End low-level robot commands */
 
Index: trunk/code/projects/colonet/ColonetServer/Command.cpp
===================================================================
--- trunk/code/projects/colonet/ColonetServer/Command.cpp	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/Command.cpp	(revision 453)
@@ -24,8 +24,9 @@
 
 using namespace std;
 
-Command::Command(ConnectionPool * connection_pool_temp) {
+Command::Command(ConnectionPool * connection_pool_temp, ColonetServer* cs) {
   connection_pool = connection_pool_temp;
+  colonet_server = cs;
 }
 
 Command::~Command() {}
@@ -224,12 +225,12 @@
     }
     break;
 
-  case CLIENT_ASSIGN_POSITION_TO_ROBOT_ID:
+  case CLIENT_ASSIGN_ROBOT_ID:
     
     break;
 
   default:
-    char * my_current_message = "Hi, how are you?\n";
+    char * my_current_message = "Invalid request!\n";
     printf("Sending %s\n", my_current_message);
     connection_pool->write_to_client(pool_index, my_current_message, strlen(my_current_message));
     break;
@@ -283,7 +284,7 @@
 int Command::parse_request_robot_positions(int pool_index) {
   printf("TODO - parse_request_robot_positions\n");
   
-  map<int, VisionPosition> positions = colonet_server.getPositionMonitor()->getAllRobotPositions();
+  map<int, VisionPosition> positions = colonet_server->getPositionMonitor()->getAllRobotPositions();
 
   return 0;
 }
Index: trunk/code/projects/colonet/ColonetServer/includes/ConnectionPool.h
===================================================================
--- trunk/code/projects/colonet/ColonetServer/includes/ConnectionPool.h	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/includes/ConnectionPool.h	(revision 453)
@@ -9,6 +9,7 @@
 #include <sys/select.h>
 
 #include <colonet_wireless.h>
+#include <ColonetServer.h>
 
 #define MAX_TOKENS 15
 #define MAX_TOKEN_SIZE 30
@@ -31,10 +32,12 @@
 #define READ_BUFFER_SIZE 1024
 #define WRITE_BUFFER_SIZE 4096
 
+class ColonetServer;
+
 class ConnectionPool {
 
 public:
-  ConnectionPool();
+  ConnectionPool(ColonetServer* cs);
   ~ConnectionPool();
 
   int add_client(int client_file_descriptor);
@@ -59,6 +62,7 @@
   int read_buffer_size[MAX_CONNECTIONS];
   char * write_buffer[MAX_CONNECTIONS];
   int write_buffer_size[MAX_CONNECTIONS];
+  ColonetServer* colonet_server;
 
   int read_data(int pool_index, int client_file_descriptor);
   int write_data(int pool_index, int client_file_descriptor);
Index: trunk/code/projects/colonet/ColonetServer/includes/ColonetServer.h
===================================================================
--- trunk/code/projects/colonet/ColonetServer/includes/ColonetServer.h	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/includes/ColonetServer.h	(revision 453)
@@ -6,6 +6,8 @@
 #ifndef COLONETSERVER_H
 #define COLONETSERVER_H
 
+ class ConnectionPool;
+
 #include <ConnectionPool.h>
 #include <PositionMonitor.h>
 #include <Log.h>
@@ -22,7 +24,7 @@
   PositionMonitor* getPositionMonitor(void);
 
 private:
-  ConnectionPool connection_pool;
+  ConnectionPool* connection_pool;
   Log* logger;
   int listen_socket;
   PositionMonitor position_monitor;
Index: trunk/code/projects/colonet/ColonetServer/includes/PositionMonitor.h
===================================================================
--- trunk/code/projects/colonet/ColonetServer/includes/PositionMonitor.h	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/includes/PositionMonitor.h	(revision 453)
@@ -26,6 +26,7 @@
   int startMonitoring(void);
   int stopMonitoring(void);
   int updatePositions(void);
+  
 
   map<int, VisionPosition> getAllRobotPositions(void);
   int getRobotPosition(int robot_id, int* xbuf, int* ybuf);
Index: trunk/code/projects/colonet/ColonetServer/includes/Command.h
===================================================================
--- trunk/code/projects/colonet/ColonetServer/includes/Command.h	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/includes/Command.h	(revision 453)
@@ -9,11 +9,12 @@
 #define COMMAND_H
 
 #include <ConnectionPool.h>
+#include <ColonetServer.h>
 #include <list>
 
 class Command {
  public:
-  Command(ConnectionPool * connection_pool);
+  Command(ConnectionPool * connection_pool, ColonetServer* cs);
   ~Command();
 
   int parse_command(char* command, int pool_index);
@@ -30,6 +31,7 @@
   int parse_request_robot_positions(int pool_index);
 
   ConnectionPool * connection_pool;
+  ColonetServer* colonet_server;
 };
 
 
Index: trunk/code/projects/colonet/ColonetServer/ConnectionPool.cpp
===================================================================
--- trunk/code/projects/colonet/ColonetServer/ConnectionPool.cpp	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/ConnectionPool.cpp	(revision 453)
@@ -23,7 +23,9 @@
 /**
  * @brief The default constructor for ConnectionPool
  */
-ConnectionPool::ConnectionPool() {
+ConnectionPool::ConnectionPool(ColonetServer* cs) {
+  colonet_server = cs;
+
   max_file_descriptor = 0;
   next_available_slot = 0;
   number_clients_ready = 0;
@@ -335,7 +337,7 @@
         break;
       }
 
-      Command command(this);
+      Command command(this, colonet_server);
       if (command.parse_command(temporary_command_buffer, pool_index) != 0) {
         fprintf(stderr, "Error parsing command\n");
         break;
Index: trunk/code/projects/colonet/ColonetServer/ColonetServer.cpp
===================================================================
--- trunk/code/projects/colonet/ColonetServer/ColonetServer.cpp	(revision 452)
+++ trunk/code/projects/colonet/ColonetServer/ColonetServer.cpp	(revision 453)
@@ -38,6 +38,7 @@
  */
 ColonetServer::ColonetServer() {
   listen_socket = 0;
+  connection_pool = new ConnectionPool(this);
 }
 
 /**
@@ -44,6 +45,7 @@
  * @brief Destructor for ColonetServer
  */
 ColonetServer::~ColonetServer() {
+  delete connection_pool;
 }
 
 /**
@@ -94,7 +96,7 @@
  * @brief Starts the server running (starts an infinite loop)
  */
 int ColonetServer::run_server() {
-  connection_pool.add_new_socket_to_pool(listen_socket);
+  connection_pool->add_new_socket_to_pool(listen_socket);
 
   int accept_socket = 0;
   struct sockaddr_in client_addr;
@@ -105,15 +107,14 @@
   }
 
   while(1) {
+    connection_pool->perform_select(listen_socket);
 
-    connection_pool.perform_select(listen_socket);
-
     //either no descriptors are ready or there was an error
-    if (connection_pool.get_number_clients_ready() <= 0) {
+    if (connection_pool->get_number_clients_ready() <= 0) {
       continue;
     }
 
-    if (connection_pool.is_socket_ready_to_read(listen_socket)) {
+    if (connection_pool->is_socket_ready_to_read(listen_socket)) {
       printf("Something is trying to connect...\n");
       if ((accept_socket = accept(listen_socket, (struct sockaddr*) &client_addr, &client_addr_size)) < 0) {
         if (errno == EMFILE) {
@@ -133,7 +134,7 @@
         logger->log_string(LOG_TYPE_CONNECT, log_buffer);
       }
 
-      if (connection_pool.add_client(accept_socket) < 0) {
+      if (connection_pool->add_client(accept_socket) < 0) {
         printf("\tThere was an error when trying to add a client to the connection pool.");
         continue;
       }
@@ -146,7 +147,7 @@
       }
     }
 
-    if (connection_pool.check_clients() < 0) {
+    if (connection_pool->check_clients() < 0) {
       printf("\tThere was an error trying to update the clients.");
       continue;
     }
@@ -162,7 +163,7 @@
 * @param len - Length of the data param.
 */
 int ColonetServer::process_received_wireless_message(int dest, char* data, int len) {
-  if (connection_pool.write_to_client(dest, data, len) == ERROR_INVALID_CLIENT_ID) {
+  if (connection_pool->write_to_client(dest, data, len) == ERROR_INVALID_CLIENT_ID) {
     printf("The robot wanted to pass the data to a client not in the pool.\n");
     return -1;
   }
