diff --git a/Jenkinsfile b/Jenkinsfile
index 89a8bb7..8b12c0b 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -19,7 +19,7 @@ node {
stage('Test') {
bat 'IF NOT EXIST GameBinaries MKDIR GameBinaries'
- bat "\"packages/xunit.runner.console.2.2.0/tools/xunit.console.exe\" \"bin-test/x64/Release/Torch.Tests.dll\" -parallel none -xml \"reports/Torch.Tests.xml\""
+ bat "\"packages/xunit.runner.console.2.2.0/tools/xunit.console.exe\" \"bin-test/x64/Release/Torch.Tests.dll\" \"bin-test/x64/Release/Torch.Server.Tests.dll\" -parallel none -xml \"reports/Torch.Tests.xml\""
step([
$class: 'XUnitBuilder',
thresholdMode: 1,
diff --git a/Torch.Client/Program.cs b/Torch.Client/Program.cs
index 1ff5f54..99ee7fe 100644
--- a/Torch.Client/Program.cs
+++ b/Torch.Client/Program.cs
@@ -9,6 +9,7 @@ using System.Threading;
using System.Windows;
using System.Windows.Forms;
using NLog;
+using Torch.Utils;
using MessageBox = System.Windows.MessageBox;
namespace Torch.Client
diff --git a/Torch.Server.Tests/Properties/AssemblyInfo.cs b/Torch.Server.Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..11ceb07
--- /dev/null
+++ b/Torch.Server.Tests/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Torch.Server.Tests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Torch.Server.Tests")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9efd1d91-2fa2-47ed-b537-d8bc3b0e543e")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Torch.Server.Tests/Torch.Server.Tests.csproj b/Torch.Server.Tests/Torch.Server.Tests.csproj
new file mode 100644
index 0000000..96dac2a
--- /dev/null
+++ b/Torch.Server.Tests/Torch.Server.Tests.csproj
@@ -0,0 +1,85 @@
+
+
+
+
+ {9EFD1D91-2FA2-47ED-B537-D8BC3B0E543E}
+ Library
+ Properties
+ Torch.Server.Tests
+ Torch.Server.Tests
+ v4.6.1
+ 512
+
+
+
+ 1591,0649
+
+
+ true
+ $(SolutionDir)\bin-test\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ $(SolutionDir)\bin-test\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+ MinimumRecommendedRules.ruleset
+ $(SolutionDir)\bin-test\x64\Release\Torch.Server.Tests.xml
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll
+
+
+ ..\packages\xunit.assert.2.2.0\lib\netstandard1.1\xunit.assert.dll
+
+
+ ..\packages\xunit.extensibility.core.2.2.0\lib\netstandard1.1\xunit.core.dll
+
+
+ ..\packages\xunit.extensibility.execution.2.2.0\lib\net452\xunit.execution.desktop.dll
+
+
+
+
+
+
+
+
+ {fba5d932-6254-4a1e-baf4-e229fa94e3c2}
+ Torch.API
+
+
+ {ca50886b-7b22-4cd8-93a0-c06f38d4f77d}
+ Torch.Server
+
+
+ {c3c8b671-6ad1-44aa-a8da-e0c0dc0fedf5}
+ Torch.Tests
+
+
+ {7e01635c-3b67-472e-bcd6-c5539564f214}
+ Torch
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Torch.Server.Tests/TorchServerReflectionTest.cs b/Torch.Server.Tests/TorchServerReflectionTest.cs
new file mode 100644
index 0000000..e4ec2de
--- /dev/null
+++ b/Torch.Server.Tests/TorchServerReflectionTest.cs
@@ -0,0 +1,66 @@
+using System.Collections.Generic;
+using Torch.Tests;
+using Torch.Utils;
+using Xunit;
+
+namespace Torch.Server.Tests
+{
+ public class TorchServerReflectionTest
+ {
+ static TorchServerReflectionTest()
+ {
+ TestUtils.Init();
+ }
+
+ private static ReflectionTestManager _manager;
+
+ private static ReflectionTestManager Manager()
+ {
+ if (_manager != null)
+ return _manager;
+
+ return _manager = new ReflectionTestManager().Init(typeof(TorchServer).Assembly);
+ }
+
+ public static IEnumerable