diff --git a/MLAPI/MLAPI.csproj b/MLAPI/MLAPI.csproj
index 422af89..7cb2cfc 100644
--- a/MLAPI/MLAPI.csproj
+++ b/MLAPI/MLAPI.csproj
@@ -73,11 +73,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -85,14 +85,14 @@
-
-
-
-
+
+
+
+
-
+
-
+
diff --git a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs
index bdf2100..ab890eb 100644
--- a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs
+++ b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs
@@ -1,12 +1,13 @@
using System;
using System.Collections.Generic;
using UnityEngine;
-using MLAPI.NetworkingManagerComponents;
using System.Reflection;
using MLAPI.Attributes;
using System.Linq;
using System.IO;
using MLAPI.Data;
+using MLAPI.NetworkingManagerComponents.Binary;
+using MLAPI.NetworkingManagerComponents.Core;
namespace MLAPI.MonoBehaviours.Core
{
diff --git a/MLAPI/MonoBehaviours/Core/NetworkedObject.cs b/MLAPI/MonoBehaviours/Core/NetworkedObject.cs
index 5a22f1e..09dfdf7 100644
--- a/MLAPI/MonoBehaviours/Core/NetworkedObject.cs
+++ b/MLAPI/MonoBehaviours/Core/NetworkedObject.cs
@@ -1,4 +1,4 @@
-using MLAPI.NetworkingManagerComponents;
+using MLAPI.NetworkingManagerComponents.Core;
using System;
using System.Collections.Generic;
using UnityEngine;
diff --git a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs
index 7eae2c2..b45df11 100644
--- a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs
+++ b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs
@@ -1,5 +1,4 @@
using MLAPI.Data;
-using MLAPI.NetworkingManagerComponents;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -8,6 +7,8 @@ using UnityEngine;
using UnityEngine.Networking;
using System.Linq;
using System.Security.Cryptography;
+using MLAPI.NetworkingManagerComponents.Cryptography;
+using MLAPI.NetworkingManagerComponents.Core;
namespace MLAPI.MonoBehaviours.Core
{
diff --git a/MLAPI/MonoBehaviours/Core/TrackedObject.cs b/MLAPI/MonoBehaviours/Core/TrackedObject.cs
index dbefdac..5448e65 100644
--- a/MLAPI/MonoBehaviours/Core/TrackedObject.cs
+++ b/MLAPI/MonoBehaviours/Core/TrackedObject.cs
@@ -1,5 +1,5 @@
using MLAPI.Data;
-using MLAPI.NetworkingManagerComponents;
+using MLAPI.NetworkingManagerComponents.Core;
using System.Collections.Generic;
using UnityEngine;
diff --git a/MLAPI/NetworkingManagerComponents/BinarySerializer.cs b/MLAPI/NetworkingManagerComponents/Binary/BinarySerializer.cs
similarity index 99%
rename from MLAPI/NetworkingManagerComponents/BinarySerializer.cs
rename to MLAPI/NetworkingManagerComponents/Binary/BinarySerializer.cs
index 4e2adbe..08f9c8a 100644
--- a/MLAPI/NetworkingManagerComponents/BinarySerializer.cs
+++ b/MLAPI/NetworkingManagerComponents/Binary/BinarySerializer.cs
@@ -6,7 +6,7 @@ using System.Reflection;
using System.Text;
using UnityEngine;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Binary
{
///
/// Helper class for serializing classes to binary
diff --git a/MLAPI/NetworkingManagerComponents/MessageChunker.cs b/MLAPI/NetworkingManagerComponents/Binary/MessageChunker.cs
similarity index 99%
rename from MLAPI/NetworkingManagerComponents/MessageChunker.cs
rename to MLAPI/NetworkingManagerComponents/Binary/MessageChunker.cs
index 624d799..ada78af 100644
--- a/MLAPI/NetworkingManagerComponents/MessageChunker.cs
+++ b/MLAPI/NetworkingManagerComponents/Binary/MessageChunker.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Binary
{
///
/// Helper class to chunk messages
diff --git a/MLAPI/NetworkingManagerComponents/ClientIdManager.cs b/MLAPI/NetworkingManagerComponents/Core/ClientIdManager.cs
similarity index 93%
rename from MLAPI/NetworkingManagerComponents/ClientIdManager.cs
rename to MLAPI/NetworkingManagerComponents/Core/ClientIdManager.cs
index a4ce7ab..57dab7c 100644
--- a/MLAPI/NetworkingManagerComponents/ClientIdManager.cs
+++ b/MLAPI/NetworkingManagerComponents/Core/ClientIdManager.cs
@@ -1,8 +1,7 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using MLAPI.Data;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Core
{
internal static class ClientIdManager
{
diff --git a/MLAPI/NetworkingManagerComponents/LagCompensationManager.cs b/MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs
similarity index 98%
rename from MLAPI/NetworkingManagerComponents/LagCompensationManager.cs
rename to MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs
index 11734d3..a5b7643 100644
--- a/MLAPI/NetworkingManagerComponents/LagCompensationManager.cs
+++ b/MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Core
{
///
/// The main class for controlling lag compensation
diff --git a/MLAPI/NetworkingManagerComponents/MessageManager.cs b/MLAPI/NetworkingManagerComponents/Core/MessageManager.cs
similarity index 98%
rename from MLAPI/NetworkingManagerComponents/MessageManager.cs
rename to MLAPI/NetworkingManagerComponents/Core/MessageManager.cs
index b4ada6c..e78ae37 100644
--- a/MLAPI/NetworkingManagerComponents/MessageManager.cs
+++ b/MLAPI/NetworkingManagerComponents/Core/MessageManager.cs
@@ -3,7 +3,7 @@ using System;
using System.Collections.Generic;
using UnityEngine;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Core
{
internal static class MessageManager
{
diff --git a/MLAPI/NetworkingManagerComponents/NetworkPoolManager.cs b/MLAPI/NetworkingManagerComponents/Core/NetworkPoolManager.cs
similarity index 98%
rename from MLAPI/NetworkingManagerComponents/NetworkPoolManager.cs
rename to MLAPI/NetworkingManagerComponents/Core/NetworkPoolManager.cs
index 7fad509..c3e9c63 100644
--- a/MLAPI/NetworkingManagerComponents/NetworkPoolManager.cs
+++ b/MLAPI/NetworkingManagerComponents/Core/NetworkPoolManager.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
using System.IO;
using UnityEngine;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Core
{
///
/// Main class for managing network pools
diff --git a/MLAPI/NetworkingManagerComponents/NetworkSceneManager.cs b/MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs
similarity index 98%
rename from MLAPI/NetworkingManagerComponents/NetworkSceneManager.cs
rename to MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs
index bd34116..782558d 100644
--- a/MLAPI/NetworkingManagerComponents/NetworkSceneManager.cs
+++ b/MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs
@@ -5,7 +5,7 @@ using System.Linq;
using UnityEngine;
using UnityEngine.SceneManagement;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Core
{
///
/// Main class for managing network scenes
diff --git a/MLAPI/NetworkingManagerComponents/SpawnManager.cs b/MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs
similarity index 99%
rename from MLAPI/NetworkingManagerComponents/SpawnManager.cs
rename to MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs
index 793869e..a1bc5a5 100644
--- a/MLAPI/NetworkingManagerComponents/SpawnManager.cs
+++ b/MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using UnityEngine;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Core
{
internal static class SpawnManager
{
diff --git a/MLAPI/NetworkingManagerComponents/CryptographyHelper.cs b/MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs
similarity index 97%
rename from MLAPI/NetworkingManagerComponents/CryptographyHelper.cs
rename to MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs
index b6b1ed6..52ed10b 100644
--- a/MLAPI/NetworkingManagerComponents/CryptographyHelper.cs
+++ b/MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs
@@ -2,7 +2,7 @@
using System.Security.Cryptography;
using System.IO;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Cryptography
{
///
/// Helper class for encryption purposes
diff --git a/MLAPI/NetworkingManagerComponents/DiffieHellman.cs b/MLAPI/NetworkingManagerComponents/Cryptography/DiffieHellman.cs
similarity index 98%
rename from MLAPI/NetworkingManagerComponents/DiffieHellman.cs
rename to MLAPI/NetworkingManagerComponents/Cryptography/DiffieHellman.cs
index 179236d..ccef774 100644
--- a/MLAPI/NetworkingManagerComponents/DiffieHellman.cs
+++ b/MLAPI/NetworkingManagerComponents/Cryptography/DiffieHellman.cs
@@ -3,7 +3,7 @@ using IntXLib;
using System.Text;
using System.Security.Cryptography;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Cryptography
{
internal class EllipticDiffieHellman
{
diff --git a/MLAPI/NetworkingManagerComponents/EllipticCurve.cs b/MLAPI/NetworkingManagerComponents/Cryptography/EllipticCurve.cs
similarity index 99%
rename from MLAPI/NetworkingManagerComponents/EllipticCurve.cs
rename to MLAPI/NetworkingManagerComponents/Cryptography/EllipticCurve.cs
index 51ab1fd..99989bf 100644
--- a/MLAPI/NetworkingManagerComponents/EllipticCurve.cs
+++ b/MLAPI/NetworkingManagerComponents/Cryptography/EllipticCurve.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using IntXLib;
-namespace MLAPI.NetworkingManagerComponents
+namespace MLAPI.NetworkingManagerComponents.Cryptography
{
internal class CurvePoint
{