diff --git a/Development/Software/Client API/Client API.vcxproj b/Development/Software/Client API/Client API.vcxproj
index b65fdf6cf024e3d79c86d5dc7c3f898637851c4b..c2bfd19115c6b3e25fdce0366a009fc67cd224b4 100644
--- a/Development/Software/Client API/Client API.vcxproj	
+++ b/Development/Software/Client API/Client API.vcxproj	
@@ -11,11 +11,16 @@
     </ProjectConfiguration>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\Communications\Bluetooth.cpp" />
     <ClCompile Include="Communications.cpp" />
+    <ClCompile Include="Sources\Bluetooth\UnixBluetooth.cpp" />
+    <ClCompile Include="Sources\Bluetooth\WindowsBluetooth.cpp" />
+    <ClCompile Include="Sources\Listener\UnixListener.cpp" />
+    <ClCompile Include="Sources\Listener\WindowsListener.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="Communications.h" />
+    <ClInclude Include="Headers\Bluetooth.h" />
+    <ClInclude Include="Headers\Listener.h" />
   </ItemGroup>
   <ItemGroup>
     <Text Include="README.txt" />
diff --git a/Development/Software/Client API/Client API.vcxproj.filters b/Development/Software/Client API/Client API.vcxproj.filters
index 3c5672722d706358ef402b2a4ef98de0fa4742b5..79bb6b7a21a644baf5d82b67ecd3293c513ae2fd 100644
--- a/Development/Software/Client API/Client API.vcxproj.filters	
+++ b/Development/Software/Client API/Client API.vcxproj.filters	
@@ -18,7 +18,16 @@
     <ClCompile Include="Communications.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\Communications\Bluetooth.cpp">
+    <ClCompile Include="Sources\Bluetooth\UnixBluetooth.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Sources\Bluetooth\WindowsBluetooth.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Sources\Listener\WindowsListener.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Sources\Listener\UnixListener.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
@@ -31,5 +40,11 @@
     <ClInclude Include="Communications.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="Headers\Listener.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Headers\Bluetooth.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/Development/Software/Client API/Headers/Bluetooth.h b/Development/Software/Client API/Headers/Bluetooth.h
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Development/Software/Client API/Headers/Listener.h b/Development/Software/Client API/Headers/Listener.h
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Development/Software/Client API/Sources/Bluetooth/UnixBluetooth.cpp b/Development/Software/Client API/Sources/Bluetooth/UnixBluetooth.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f79a6e1b6470c096e802bda7feb6b681de582682
--- /dev/null
+++ b/Development/Software/Client API/Sources/Bluetooth/UnixBluetooth.cpp	
@@ -0,0 +1,7 @@
+#ifdef unix
+
+#include "Bluetooth.h"
+
+// Code goes here for unix based systems
+
+#endif
\ No newline at end of file
diff --git a/Development/Software/Client API/Sources/Bluetooth/WindowsBluetooth.cpp b/Development/Software/Client API/Sources/Bluetooth/WindowsBluetooth.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..885482e40f24866611f8ce15c1f7e01fc593e854
--- /dev/null
+++ b/Development/Software/Client API/Sources/Bluetooth/WindowsBluetooth.cpp	
@@ -0,0 +1,7 @@
+#ifdef _WIN32
+
+#include "../../Headers/Bluetooth.h"
+
+// Code goes here
+
+#endif
\ No newline at end of file
diff --git a/Development/Software/Client API/Sources/Listener/UnixListener.cpp b/Development/Software/Client API/Sources/Listener/UnixListener.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..240d9d78df6bf7d0f5c7d3337ccf4952891dda11
--- /dev/null
+++ b/Development/Software/Client API/Sources/Listener/UnixListener.cpp	
@@ -0,0 +1,7 @@
+#ifdef unix
+
+#include "../../Headers/Listener.h"
+
+// Code goes here for unix based systems
+
+#endif
\ No newline at end of file
diff --git a/Development/Software/Client API/Sources/Listener/WindowsListener.cpp b/Development/Software/Client API/Sources/Listener/WindowsListener.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6bb561040c4b6bada7f8fa61b35fb051b9334ab3
--- /dev/null
+++ b/Development/Software/Client API/Sources/Listener/WindowsListener.cpp	
@@ -0,0 +1,7 @@
+#ifdef _WIN32
+
+#include "../../Headers/Listener.h"
+
+// Code goes here
+
+#endif
\ No newline at end of file
diff --git a/Development/Software/Communications/Bluetooth.cpp b/Development/Software/Communications/Bluetooth.cpp
index da793a45aef6deccdcb320686dc70f70723dbdc6..772dda324ed051b5a4b90bdd8e77891ab62d5c04 100644
--- a/Development/Software/Communications/Bluetooth.cpp
+++ b/Development/Software/Communications/Bluetooth.cpp
@@ -1,4 +1,4 @@
-///*
+//*
 // * Bluetooth.cpp
 // *
 // *  Created on: Nov 15, 2015
diff --git a/Development/Software/Controller API/Bluetooth.cpp b/Development/Software/Controller API/Bluetooth.cpp
deleted file mode 100644
index e29f93d72c16486c9c95b6177b411bfba454bbd3..0000000000000000000000000000000000000000
--- a/Development/Software/Controller API/Bluetooth.cpp	
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "Bluetooth.h"
-
-namespace Bluetooth
-{
-	int myNum;
-
-	int scan()
-	{
-		return myNum;
-	}
-}
diff --git a/Development/Software/Controller API/Bluetooth.h b/Development/Software/Controller API/Bluetooth.h
deleted file mode 100644
index 9e402b181854691ec0196a351a1022577ce21859..0000000000000000000000000000000000000000
--- a/Development/Software/Controller API/Bluetooth.h	
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-namespace Bluetooth
-{
-	extern int myNum;
-
-	int Scan();
-}
-
diff --git a/Development/Software/Controller API/Controller API.vcxproj b/Development/Software/Controller API/Controller API.vcxproj
index fae3fed660a9ff19b656acc7f0ead5ea28a98706..c936f83988f8d6925c25b9c9d70c5163d6df5b66 100644
--- a/Development/Software/Controller API/Controller API.vcxproj	
+++ b/Development/Software/Controller API/Controller API.vcxproj	
@@ -11,31 +11,29 @@
     </ProjectConfiguration>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="Bluetooth.cpp" />
-    <ClCompile Include="Client.cpp" />
-    <ClCompile Include="Communications.cpp" />
-    <ClCompile Include="GyroService.cpp" />
-    <ClCompile Include="Joystick.cpp" />
-    <ClCompile Include="LSM9DS0.cpp" />
-    <ClCompile Include="Mailbox.cpp" />
-    <ClCompile Include="Message.cpp" />
-    <ClCompile Include="MPU9250.cpp" />
-    <ClCompile Include="Server.cpp" />
-    <ClCompile Include="Service.cpp" />
-    <ClCompile Include="Source.cpp" />
+    <ClCompile Include="Sources\Bluetooth\Bluetooth.cpp" />
+    <ClCompile Include="Sources\Client.cpp" />
+    <ClCompile Include="Sources\Communications.cpp" />
+    <ClCompile Include="Sources\GyroService.cpp" />
+    <ClCompile Include="Sources\Sensors\Joystick.cpp" />
+    <ClCompile Include="Sources\Mailbox.cpp" />
+    <ClCompile Include="Sources\Message.cpp" />
+    <ClCompile Include="Sources\Sensors\MPU9250.cpp" />
+    <ClCompile Include="Sources\Server.cpp" />
+    <ClCompile Include="Sources\Service.cpp" />
+    <ClCompile Include="Sources\Source.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="Bluetooth.h" />
-    <ClInclude Include="Client.h" />
-    <ClInclude Include="Communications.h" />
-    <ClInclude Include="GyroService.h" />
-    <ClInclude Include="Joystick.h" />
-    <ClInclude Include="LSM9DS0.h" />
-    <ClInclude Include="Mailbox.h" />
-    <ClInclude Include="Message.h" />
-    <ClInclude Include="MPU9250.h" />
-    <ClInclude Include="Server.h" />
-    <ClInclude Include="Service.h" />
+    <ClInclude Include="Headers\Bluetooth\Bluetooth.h" />
+    <ClInclude Include="Headers\Client.h" />
+    <ClInclude Include="Headers\Communications.h" />
+    <ClInclude Include="Headers\GyroService.h" />
+    <ClInclude Include="Headers\Sensors\Joystick.h" />
+    <ClInclude Include="Headers\Mailbox.h" />
+    <ClInclude Include="Headers\Message.h" />
+    <ClInclude Include="Headers\Sensors\MPU9250.h" />
+    <ClInclude Include="Headers\Server.h" />
+    <ClInclude Include="Headers\Service.h" />
   </ItemGroup>
   <ItemGroup>
     <Text Include="Makefile.txt" />
diff --git a/Development/Software/Controller API/Controller API.vcxproj.filters b/Development/Software/Controller API/Controller API.vcxproj.filters
index dbeb249e5d949c7280b1ae4ce21fb1d0aa282b8e..be6a5d4daed7bb7a13ff8b5a2cc86ab9cb6d96f0 100644
--- a/Development/Software/Controller API/Controller API.vcxproj.filters	
+++ b/Development/Software/Controller API/Controller API.vcxproj.filters	
@@ -33,77 +33,71 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="Communications.cpp">
-      <Filter>Source Files</Filter>
+    <ClCompile Include="Sources\Sensors\MPU9250.cpp">
+      <Filter>Source Files\Sensors</Filter>
     </ClCompile>
-    <ClCompile Include="Bluetooth.cpp">
-      <Filter>Source Files</Filter>
+    <ClCompile Include="Sources\Sensors\Joystick.cpp">
+      <Filter>Source Files\Sensors</Filter>
     </ClCompile>
-    <ClCompile Include="Server.cpp">
+    <ClCompile Include="Sources\Bluetooth\Bluetooth.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="Client.cpp">
+    <ClCompile Include="Sources\Client.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="Source.cpp">
+    <ClCompile Include="Sources\Source.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="LSM9DS0.cpp">
-      <Filter>Source Files\Sensors</Filter>
-    </ClCompile>
-    <ClCompile Include="Joystick.cpp">
-      <Filter>Source Files\Sensors</Filter>
-    </ClCompile>
-    <ClCompile Include="MPU9250.cpp">
-      <Filter>Source Files\Sensors</Filter>
-    </ClCompile>
-    <ClCompile Include="Service.cpp">
-      <Filter>Source Files\Services</Filter>
+    <ClCompile Include="Sources\Server.cpp">
+      <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="GyroService.cpp">
+    <ClCompile Include="Sources\Service.cpp">
       <Filter>Source Files\Services</Filter>
     </ClCompile>
-    <ClCompile Include="Mailbox.cpp">
+    <ClCompile Include="Sources\Message.cpp">
       <Filter>Source Files\MessagePassing</Filter>
     </ClCompile>
-    <ClCompile Include="Message.cpp">
+    <ClCompile Include="Sources\Mailbox.cpp">
       <Filter>Source Files\MessagePassing</Filter>
     </ClCompile>
+    <ClCompile Include="Sources\GyroService.cpp">
+      <Filter>Source Files\Services</Filter>
+    </ClCompile>
+    <ClCompile Include="Sources\Communications.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="Communications.h">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="Headers\Sensors\Joystick.h">
+      <Filter>Header Files\Sensors</Filter>
     </ClInclude>
-    <ClInclude Include="Bluetooth.h">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="Headers\Sensors\MPU9250.h">
+      <Filter>Header Files\Sensors</Filter>
     </ClInclude>
-    <ClInclude Include="Server.h">
+    <ClInclude Include="Headers\Bluetooth\Bluetooth.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="Client.h">
+    <ClInclude Include="Headers\Client.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="LSM9DS0.h">
-      <Filter>Header Files\Sensors</Filter>
-    </ClInclude>
-    <ClInclude Include="Joystick.h">
-      <Filter>Header Files\Sensors</Filter>
-    </ClInclude>
-    <ClInclude Include="MPU9250.h">
-      <Filter>Header Files\Sensors</Filter>
-    </ClInclude>
-    <ClInclude Include="GyroService.h">
-      <Filter>Header Files\Services</Filter>
+    <ClInclude Include="Headers\Communications.h">
+      <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="Service.h">
+    <ClInclude Include="Headers\GyroService.h">
       <Filter>Header Files\Services</Filter>
     </ClInclude>
-    <ClInclude Include="Mailbox.h">
+    <ClInclude Include="Headers\Mailbox.h">
       <Filter>Header Files\MessagePassing</Filter>
     </ClInclude>
-    <ClInclude Include="Message.h">
+    <ClInclude Include="Headers\Message.h">
       <Filter>Header Files\MessagePassing</Filter>
     </ClInclude>
+    <ClInclude Include="Headers\Server.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Headers\Service.h">
+      <Filter>Header Files\Services</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Text Include="Makefile.txt">
diff --git a/Development/Software/Controller API/Headers/Bluetooth/Bluetooth.h b/Development/Software/Controller API/Headers/Bluetooth/Bluetooth.h
new file mode 100644
index 0000000000000000000000000000000000000000..ea3597c85c2f3f057931c5e967a3463cb767aba5
--- /dev/null
+++ b/Development/Software/Controller API/Headers/Bluetooth/Bluetooth.h	
@@ -0,0 +1,8 @@
+#pragma once
+class Bluetooth
+{
+public:
+	Bluetooth();
+	~Bluetooth();
+};
+
diff --git a/Development/Software/Controller API/Client.h b/Development/Software/Controller API/Headers/Client.h
similarity index 100%
rename from Development/Software/Controller API/Client.h
rename to Development/Software/Controller API/Headers/Client.h
diff --git a/Development/Software/Controller API/Communications.h b/Development/Software/Controller API/Headers/Communications.h
similarity index 100%
rename from Development/Software/Controller API/Communications.h
rename to Development/Software/Controller API/Headers/Communications.h
diff --git a/Development/Software/Controller API/GyroService.h b/Development/Software/Controller API/Headers/GyroService.h
similarity index 100%
rename from Development/Software/Controller API/GyroService.h
rename to Development/Software/Controller API/Headers/GyroService.h
diff --git a/Development/Software/Controller API/Mailbox.h b/Development/Software/Controller API/Headers/Mailbox.h
similarity index 100%
rename from Development/Software/Controller API/Mailbox.h
rename to Development/Software/Controller API/Headers/Mailbox.h
diff --git a/Development/Software/Controller API/Message.h b/Development/Software/Controller API/Headers/Message.h
similarity index 100%
rename from Development/Software/Controller API/Message.h
rename to Development/Software/Controller API/Headers/Message.h
diff --git a/Development/Software/Controller API/Joystick.h b/Development/Software/Controller API/Headers/Sensors/Joystick.h
similarity index 100%
rename from Development/Software/Controller API/Joystick.h
rename to Development/Software/Controller API/Headers/Sensors/Joystick.h
diff --git a/Development/Software/Controller API/MPU9250.h b/Development/Software/Controller API/Headers/Sensors/MPU9250.h
similarity index 100%
rename from Development/Software/Controller API/MPU9250.h
rename to Development/Software/Controller API/Headers/Sensors/MPU9250.h
diff --git a/Development/Software/Controller API/Server.h b/Development/Software/Controller API/Headers/Server.h
similarity index 100%
rename from Development/Software/Controller API/Server.h
rename to Development/Software/Controller API/Headers/Server.h
diff --git a/Development/Software/Controller API/Service.h b/Development/Software/Controller API/Headers/Service.h
similarity index 100%
rename from Development/Software/Controller API/Service.h
rename to Development/Software/Controller API/Headers/Service.h
diff --git a/Development/Software/Controller API/LSM9DS0.cpp b/Development/Software/Controller API/LSM9DS0.cpp
deleted file mode 100644
index 08610ebfbe3ce091137fa29ce5c40c9babe8ba8c..0000000000000000000000000000000000000000
--- a/Development/Software/Controller API/LSM9DS0.cpp	
+++ /dev/null
@@ -1,211 +0,0 @@
-/* 
- * @author Branden Sammons & Jonathan Krueger
- */
- 
-#include "LSM9DS0.h"
-
-LSM9DS0* LSM9DS0::myInstance = 0;
-/**
- * Constructor for the LSM9DS0 class.
- * Sets up the right SPI channels, frequency, mode, and registers.
- */
-LSM9DS0::LSM9DS0() {
-
-	// set up the mraa library
-	mraa_init();
-	
-	// set the SPI channels
-	SPI_1 = mraa_spi_init(0);
-	SPI_2 = mraa_spi_init(1);
-
-	// set the frequency ( 10Mhz )
-	mraa_spi_frequency(SPI_1, 10000000);
-	mraa_spi_frequency(SPI_2, 10000000);
-	
-	// set the mode
-	mraa_spi_mode(SPI_1, MRAA_SPI_MODE1);
-	mraa_spi_mode(SPI_2, MRAA_SPI_MODE1);
-	
-	// ensure MSB is sent first
-	mraa_spi_lsbmode(SPI_1, 0);
-	mraa_spi_lsbmode(SPI_2, 0);
-
-	// set up registers
-	// place holder
-
-}
-
-/*
-	Instance getter for the singleton
-	Creaates a new instance on first call, future calls just return the created instance
-*/
-LSM9DS0* LSM9DS0::instance()
-{
-	if (myInstance == 0)
-	{
-		myInstance = new LSM9DS0();
-	}
-	return myInstance;
-}
-
-/**
- * Deconstructor for the LSM9DS0 class.
- * Realeases the SPI channels.
- */
-LSM9DS0::~LSM9DS0() {
-	// place holder
-}
-
-/**
- * Read command for the gyro on board the LSM9DS0
- *
- * Input	: Address to read from
- * Returns	: Results from chip
- */
-uint8_t LSM9DS0::read_G(uint8_t address) {
-	
-	// lets set the first two bits to 0
-	address = address & 0x3F;
-	
-	// lets not read reserved or write only registers
-	if(	address <= 0x1F || 
-		address == 0x26 || 
-		address >= 0x39) {
-		
-		// Note: register 0x0F is read only so we will just use it
-		// WHO_AM_I_G
-		address = 0x0F;
-	}
-	
-	return this::read(SPI_1, address);
-}
-
-/**
- * Write command for the gyro on board the LSM9DS0
- * WARNING	: Writing to a reserved register can cause harm to the device. 
- * 			  Please read documentation before proceeding.
- *
- * Input	: Address to write to, data to write
- */
-void LSM9DS0::write_G(uint8_t address, uint8_t data) {
-	
-	// lets set the first two bits to 0
-	address = address & 0x3F;
-	
-	// definently not allowing writing to read only or reserved registers.
-	if(	address <= 0x1F || 
-		( address >= 0x26 && address <= 0x2D ) || 
-		address == 0x2F ||
-		address == 0x31 ||
-		address >= 0x39) {
-			
-		return;
-	}
-	
-	this::write(SPI_1, address, data);
-}
-
-/**
- * Read command for the accelerometer and magnetometer on board the LSM9DS0
- *
- * Input	: Address to read from
- * Returns	: Results from chip
- */
-uint8_t LSM9DS0::read_XM(uint8_t address) {
-	
-	// lets set the first two bits to 0
-	address = address & 0x3F;
-	
-	// lets not read reserved or write only registers
-	if(	address <= 0x04 || 
-		address == 0x0E || 
-		address == 0x10 ||
-		address == 0x11) {
-		
-		// Note: register 0x0F is read only so we will just use it
-		// WHO_AM_I_XM
-		address = 0x0F;
-	}
-	
-	return this::read(SPI_2, address);
-}
-
-/**
- * Write command for the accelerometer and magnetometer on board the LSM9DS0
- * WARNING	: Writing to a reserved register can cause harm to the device. 
- * 			  Please read documentation before proceeding.
- *
- * Input	: Address to write to, data to write
- */
-void LSM9DS0::write_XM(uint8_t address, uint8_t data) {
-	
-	// lets set the first two bits to 0
-	address = address & 0x3F;
-	
-	// definently not allowing writing to read only or reserved registers.
-	if(	address <= 0x11 || 
-		address == 0x13 || 
-		( address >= 0x27 && address <= 0x2D ) ||
-		address == 0x2F ||
-		address == 0x31 ||
-		address == 0x35 ||
-		address == 0x39) {
-		
-		return;		
-	}
-	
-	this::write(SPI_2, address, data);
-}
-
-
-/* Private methods below */
-
-/**
- * Read command for the LSM9DS0
- * Note		: First two bits need to be 10
- *
- * Input	: SPI context, address to read from
- * Returns	: Results from chip
- */
-uint8_t LSM9DS0::read(mraa_spi_context SPI, uint8_t address) {
-	
-	uint16_t send_data = address << 8;
-	
-	// need start to be bits 10
-	send_data = send_data | 0x8000;
-	send_data = send_data & 0xBFFF;
-	
-	// spi_write_word causes us to need to swap the top and bottom bytes
-	send_data = ( send_data >> 8 ) & 0x00FF;
-    send_data = send_data | ( ( send_data << 8 ) & 0xFF00 );
-	
-	// send the data down the channel and get the result
-	uint8_t result = mraa_spi_write_word(SPI, send_data);
-	
-	return result;
-}
-
-/**
- * Write command for the LSM9DS0
- * WARNING	: Writing to a reserved register can cause harm to the device. 
- * 			  Please read documentation before proceeding.
- *
- * Input	: SPI context, address to write to, data to write
- */
-void LSM9DS0::write(mraa_spi_context SPI, uint8_t address, uint8_t data) {
-	
-	uint16_t send_data = address << 8;
-	
-	// need start to be bits 00
-	send_data = send_data & 0x3FFF;
-	
-	// add the data to be sent
-	send_data = send_data | data;
-	
-	// spi_write_word causes us to need to swap the top and bottom bytes
-	send_data = ( send_data >> 8 ) & 0x00FF;
-    send_data = send_data | ( ( send_data << 8 ) & 0xFF00 );
-	
-	// send the data down the channel
-	mraa_spi_write_word(SPI, send_data);
-}
diff --git a/Development/Software/Controller API/LSM9DS0.h b/Development/Software/Controller API/LSM9DS0.h
deleted file mode 100644
index ef7d32acaa22d7fcaff3379819f4cce841dcbdf2..0000000000000000000000000000000000000000
--- a/Development/Software/Controller API/LSM9DS0.h	
+++ /dev/null
@@ -1,33 +0,0 @@
-/* 
- * @author Branden Sammons
- */
- 
-#include "mraa.h"
-#include <unistd.h>
-#include <stdint.h>
-
-class LSM9DS0{
-	
-	public:
-		static LSM9DS0* instance();
-		void run();
-
-		uint8_t read_G(uint8_t address);
-		void write_G(uint8_t address, uint8_t data);
-		uint8_t read_XM(uint8_t address);
-		void write_XM(uint8_t address, uint8_t data);
-	
-	protected:
-		LSM9DS0();
-		~LSM9DS0();
-
-	private:
-		static LSM9DS0* myInstance;
-
-		mraa_spi_context SPI_1;
-		mraa_spi_context SPI_2;
-		uint8_t read(mraa_spi_context SPI, uint8_t address);
-		void write(mraa_spi_context SPI, uint8_t address, uint8_t data);
-		
-};
-	
\ No newline at end of file
diff --git a/Development/Software/Controller API/Sources/Bluetooth/Bluetooth.cpp b/Development/Software/Controller API/Sources/Bluetooth/Bluetooth.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..404c86585c56e474ec24e4879fd113fc103ff6d1
--- /dev/null
+++ b/Development/Software/Controller API/Sources/Bluetooth/Bluetooth.cpp	
@@ -0,0 +1,11 @@
+#include "Bluetooth.h"
+
+
+Bluetooth::Bluetooth()
+{
+}
+
+
+Bluetooth::~Bluetooth()
+{
+}
diff --git a/Development/Software/Controller API/Client.cpp b/Development/Software/Controller API/Sources/Client.cpp
similarity index 100%
rename from Development/Software/Controller API/Client.cpp
rename to Development/Software/Controller API/Sources/Client.cpp
diff --git a/Development/Software/Controller API/Communications.cpp b/Development/Software/Controller API/Sources/Communications.cpp
similarity index 100%
rename from Development/Software/Controller API/Communications.cpp
rename to Development/Software/Controller API/Sources/Communications.cpp
diff --git a/Development/Software/Controller API/GyroService.cpp b/Development/Software/Controller API/Sources/GyroService.cpp
similarity index 100%
rename from Development/Software/Controller API/GyroService.cpp
rename to Development/Software/Controller API/Sources/GyroService.cpp
diff --git a/Development/Software/Controller API/Mailbox.cpp b/Development/Software/Controller API/Sources/Mailbox.cpp
similarity index 100%
rename from Development/Software/Controller API/Mailbox.cpp
rename to Development/Software/Controller API/Sources/Mailbox.cpp
diff --git a/Development/Software/Controller API/Message.cpp b/Development/Software/Controller API/Sources/Message.cpp
similarity index 100%
rename from Development/Software/Controller API/Message.cpp
rename to Development/Software/Controller API/Sources/Message.cpp
diff --git a/Development/Software/Controller API/Joystick.cpp b/Development/Software/Controller API/Sources/Sensors/Joystick.cpp
similarity index 100%
rename from Development/Software/Controller API/Joystick.cpp
rename to Development/Software/Controller API/Sources/Sensors/Joystick.cpp
diff --git a/Development/Software/Controller API/MPU9250.cpp b/Development/Software/Controller API/Sources/Sensors/MPU9250.cpp
similarity index 98%
rename from Development/Software/Controller API/MPU9250.cpp
rename to Development/Software/Controller API/Sources/Sensors/MPU9250.cpp
index b4f29ab58c1ecabf47c20837abd9d73f5f195879..09a5bc260e3aece61316ddf55c60db0959646734 100644
--- a/Development/Software/Controller API/MPU9250.cpp	
+++ b/Development/Software/Controller API/Sources/Sensors/MPU9250.cpp	
@@ -2,7 +2,7 @@
 	@author Jonathan Krueger
 */
 
-#include "MPU9250.h"
+#include
 
 #pragma region Definitions
 #define USER_CTRL 0x6A
diff --git a/Development/Software/Controller API/Server.cpp b/Development/Software/Controller API/Sources/Server.cpp
similarity index 100%
rename from Development/Software/Controller API/Server.cpp
rename to Development/Software/Controller API/Sources/Server.cpp
diff --git a/Development/Software/Controller API/Service.cpp b/Development/Software/Controller API/Sources/Service.cpp
similarity index 100%
rename from Development/Software/Controller API/Service.cpp
rename to Development/Software/Controller API/Sources/Service.cpp
diff --git a/Development/Software/Controller API/Source.cpp b/Development/Software/Controller API/Sources/Source.cpp
similarity index 100%
rename from Development/Software/Controller API/Source.cpp
rename to Development/Software/Controller API/Sources/Source.cpp
diff --git a/Development/Software/Controller API/makefile b/Development/Software/Controller API/makefile
deleted file mode 100644
index 6523f71d24e9ccde07abed862ba6c2347153ca9e..0000000000000000000000000000000000000000
--- a/Development/Software/Controller API/makefile	
+++ /dev/null
@@ -1,14 +0,0 @@
-source: Source.cpp Server.o Client.o Capsule.o
-	g++ -o source Source.cpp Capsule.o  Server.o Client.o -lbluetooth
-
-Server.o: Server.cpp
-	g++ -c Server.cpp -fpermissive
-
-Client.o: Client.cpp
-	g++ -c Client.cpp -fpermissive
-
-Capsule.o: Capsule.cpp
-	g++ -c Capsule.cpp -fpermissive
-
-clean:
-	rm *.o