diff --git a/Bindings/Raylib.projitems b/Bindings/Raylib.projitems
deleted file mode 100644
index c126779..0000000
--- a/Bindings/Raylib.projitems
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-  
-    $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
-    true
-    f660ff67-d70e-4ae0-9080-d922243e9b6e
-  
-  
-    Raylib
-  
-  
-    
-    
-    
-    
-    
-    
-  
-
\ No newline at end of file
diff --git a/Bindings/Raylib.shproj b/Bindings/Raylib.shproj
deleted file mode 100644
index 2be244b..0000000
--- a/Bindings/Raylib.shproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-  
-    f660ff67-d70e-4ae0-9080-d922243e9b6e
-    14.0
-  
-  
-  
-  
-  
-  
-  
-
diff --git a/Examples/Examples.projitems b/Examples/Examples.projitems
deleted file mode 100644
index 4fe020d..0000000
--- a/Examples/Examples.projitems
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-  
-    $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
-    true
-    36e54e2a-5899-4d4d-9d78-120db1b4c7b2
-  
-  
-    Examples
-  
-  
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-  
-
\ No newline at end of file
diff --git a/Examples/Examples.shproj b/Examples/Examples.shproj
deleted file mode 100644
index 5949e1d..0000000
--- a/Examples/Examples.shproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-  
-    36e54e2a-5899-4d4d-9d78-120db1b4c7b2
-    14.0
-  
-  
-  
-  
-  
-  
-  
-
diff --git a/Tests/Program.cs b/Tests/Program.cs
new file mode 100644
index 0000000..a0c89af
--- /dev/null
+++ b/Tests/Program.cs
@@ -0,0 +1,48 @@
+using Raylib;
+using static Raylib.Raylib;
+
+namespace Tests
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            // Initialization
+            //--------------------------------------------------------------------------------------
+            const int screenWidth = 800;
+            const int screenHeight = 450;
+        
+            InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
+        
+            SetTargetFPS(60);               // Set our game to run at 60 frames-per-second
+            //--------------------------------------------------------------------------------------
+        
+            // Main game loop
+            while (!WindowShouldClose())    // Detect window close button or ESC key
+            {
+                // Update
+                //----------------------------------------------------------------------------------
+                // TODO: Update your variables here
+                //----------------------------------------------------------------------------------
+        
+                // Draw
+                //----------------------------------------------------------------------------------
+                BeginDrawing();
+        
+                    ClearBackground(Color.RAYWHITE);
+        
+                    DrawText("Congrats! You created your first window!", 190, 200, 20, Color.LIGHTGRAY);
+        
+                EndDrawing();
+                //----------------------------------------------------------------------------------
+            }
+        
+            // De-Initialization
+            //--------------------------------------------------------------------------------------
+            CloseWindow();        // Close window and OpenGL context
+            //--------------------------------------------------------------------------------------
+        
+            return;
+        }
+    }
+}
diff --git a/Tests/Test.NetCore/Program.cs b/Tests/Test.NetCore/Program.cs
deleted file mode 100644
index 3e77a51..0000000
--- a/Tests/Test.NetCore/Program.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-
-namespace Test.NetCore
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {
-            Examples.Test.Run(args);
-        }
-    }
-}
diff --git a/Tests/Test.NetCore/Test.NetCore.csproj b/Tests/Test.NetCore/Test.NetCore.csproj
deleted file mode 100644
index bc2a387..0000000
--- a/Tests/Test.NetCore/Test.NetCore.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-
-  
-    Exe
-    netcoreapp2.1
-    raylib-cs.ico
-    x64
-    
-  
-  
-    true
-  
-  
-    true
-    false
-  
-  
-    false
-    true
-    true
-    DEBUG;TRACE
-  
-  
-    true
-    false
-  
-  
-  
-  
-  
-    
-    
-    
-  
-
diff --git a/Tests/Test.NetCoreRT/Program.cs b/Tests/Test.NetCoreRT/Program.cs
deleted file mode 100644
index 5a07db4..0000000
--- a/Tests/Test.NetCoreRT/Program.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-
-namespace Test.NetCoreRT
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {
-            Examples.Test.Run(args);
-        }
-    }
-}
diff --git a/Tests/Test.NetCoreRT/Test.NetCoreRT.csproj b/Tests/Test.NetCoreRT/Test.NetCoreRT.csproj
deleted file mode 100644
index d941b37..0000000
--- a/Tests/Test.NetCoreRT/Test.NetCoreRT.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-
-  
-    Exe
-    netcoreapp2.1
-    raylib-cs.ico
-    AnyCPU;x64;x86
-    core_basic_window
-  
-  
-    true
-  
-  
-    true
-    false
-  
-  
-    true
-  
-  
-    true
-    false
-  
-  
-    
-  
-  
-  
-  
-  
-    
-    
-    
-  
-
diff --git a/Tests/Test.NetCoreRT/raylib-cs.ico b/Tests/Test.NetCoreRT/raylib-cs.ico
deleted file mode 100644
index 296d5dd..0000000
Binary files a/Tests/Test.NetCoreRT/raylib-cs.ico and /dev/null differ
diff --git a/Tests/Test.NetFX/App.config b/Tests/Test.NetFX/App.config
deleted file mode 100644
index 00bfd11..0000000
--- a/Tests/Test.NetFX/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-     
-        
-    
-
\ No newline at end of file
diff --git a/Tests/Test.NetFX/Program.cs b/Tests/Test.NetFX/Program.cs
deleted file mode 100644
index 6835a79..0000000
--- a/Tests/Test.NetFX/Program.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-
-namespace Test.NetFX
-{
-    class Program
-    {
-        static void Main(string[] args)
-        {
-            Examples.Test.Run(args);
-        }
-    }
-}
diff --git a/Tests/Test.NetFX/Properties/AssemblyInfo.cs b/Tests/Test.NetFX/Properties/AssemblyInfo.cs
deleted file mode 100644
index 825cc70..0000000
--- a/Tests/Test.NetFX/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-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("Test.NetFX")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Test.NetFX")]
-[assembly: AssemblyCopyright("Copyright ©  2018")]
-[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("55d7bb37-3dc7-4a33-b21e-4f549ec988b5")]
-
-// 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/Tests/Test.NetFX/RayForm.cs b/Tests/Test.NetFX/RayForm.cs
deleted file mode 100644
index 120e729..0000000
--- a/Tests/Test.NetFX/RayForm.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-using System.Windows.Forms;
-using Raylib;
-using rl = Raylib.Raylib;
-using Color = Raylib.Color;
-
-namespace Test.NetFX
-{
-    public partial class RayForms : Form
-    {
-        private Panel gamePanel;
-        private bool windowAttached = false;
-
-        #region WinAPI Entry Points
-
-        [DllImport("user32.dll")]
-        private static extern IntPtr SetWindowPos(IntPtr handle, IntPtr handleAfter, int x, int y, int cx, int cy, uint flags);
-        [DllImport("user32.dll")]
-        private static extern IntPtr SetParent(IntPtr child, IntPtr newParent);
-        [DllImport("user32.dll")]
-        private static extern IntPtr ShowWindow(IntPtr handle, int command);
-
-        #endregion
-
-        public RayForms()
-        {
-            Size = new Size(1024, 700);
-            Text = "Rayforms";
-
-            gamePanel = new Panel();
-            gamePanel.Size = new Size(800, 500);
-            gamePanel.Location = new Point(50, 50);
-
-            Button button = new Button();
-            button.Text = "Attach window";
-            button.Size = new Size(150, 20);
-            button.Location = new Point(
-                (Size.Width / 2) - (button.Size.Width / 2),
-                gamePanel.Location.Y + gamePanel.Size.Height + 10
-            );
-            button.Click += new EventHandler(ClickedButton);
-            Controls.Add(button);
-            Controls.Add(gamePanel);
-        }
-
-        private void ClickedButton(object sender, EventArgs e)
-        {
-            if (!windowAttached)
-            {
-                // new Thread(Test).Start();
-                Test();
-            }
-        }
-
-        private void Test()
-        {
-            rl.SetConfigFlags(ConfigFlag.FLAG_WINDOW_UNDECORATED);
-            rl.InitWindow(800, 480, "Rayforms test");
-            rl.SetTargetFPS(60);
-
-            IntPtr winHandle = rl.GetWindowHandle();
-            Invoke(new Action(() =>
-            {
-                SetWindowPos(winHandle, Handle, 0, 0, 0, 0, 0x0401 /*NOSIZE | SHOWWINDOW */);
-                SetParent(winHandle, gamePanel.Handle);
-                ShowWindow(winHandle, 1);
-                windowAttached = true;
-            }));
-
-            while (!rl.WindowShouldClose())    // Detect window close button or ESC key
-            {
-                // Update
-                //----------------------------------------------------------------------------------
-                // TODO: Update your variables here
-                //----------------------------------------------------------------------------------
-
-                // Draw
-                //----------------------------------------------------------------------------------
-                rl.BeginDrawing();
-                rl.ClearBackground(Color.RAYWHITE);
-
-                rl.DrawText("Congrats! You created your first window!", 190, 200, 20, Color.MAROON);
-                rl.DrawText(rl.GetFrameTime().ToString(), 100, 10, 15, Color.MAROON);
-                rl.DrawFPS(10, 10);
-
-                rl.EndDrawing();
-                //----------------------------------------------------------------------------------
-            }
-            rl.CloseWindow();
-        }
-
-        public static void Run()
-        {
-            Application.Run(new RayForms());
-        }
-    }
-}
diff --git a/Tests/Test.NetFX/Test.NetFX.csproj b/Tests/Test.NetFX/Test.NetFX.csproj
deleted file mode 100644
index 2cf6d51..0000000
--- a/Tests/Test.NetFX/Test.NetFX.csproj
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-  
-  
-    Debug
-    AnyCPU
-    {55D7BB37-3DC7-4A33-B21E-4F549EC988B5}
-    Exe
-    Test.NetFX
-    Test.NetFX
-    v4.6.1
-    512
-    true
-    true
-  
-  
-    AnyCPU
-    true
-    full
-    false
-    bin\Debug\
-    DEBUG;TRACE
-    prompt
-    4
-    true
-  
-  
-    AnyCPU
-    pdbonly
-    true
-    bin\Release\
-    TRACE
-    prompt
-    4
-  
-  
-    raylib-cs.ico
-  
-  
-    true
-    bin\x64\Debug\
-    DEBUG;TRACE
-    full
-    x64
-    prompt
-    MinimumRecommendedRules.ruleset
-    true
-    true
-    false
-  
-  
-    bin\x64\Release\
-    TRACE
-    true
-    pdbonly
-    x64
-    prompt
-    MinimumRecommendedRules.ruleset
-    true
-    true
-  
-  
-    true
-    bin\x86\Debug\
-    DEBUG;TRACE
-    full
-    x86
-    prompt
-    MinimumRecommendedRules.ruleset
-    true
-    true
-  
-  
-    bin\x86\Release\
-    TRACE
-    true
-    pdbonly
-    x86
-    prompt
-    MinimumRecommendedRules.ruleset
-    true
-    true
-  
-  
-    Test.NetFX.Program
-  
-  
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    
-  
-  
-    
-    
-    
-      Form
-    
-  
-  
-    
-  
-  
-    
-      4.5.1
-    
-  
-  
-    
-  
-  
-  
-  
-  
-    
-    
-    
-  
-  
-
\ No newline at end of file
diff --git a/Tests/Test.NetFX/raylib-cs.ico b/Tests/Test.NetFX/raylib-cs.ico
deleted file mode 100644
index 296d5dd..0000000
Binary files a/Tests/Test.NetFX/raylib-cs.ico and /dev/null differ
diff --git a/Tests/Tests.MultiTarget.csproj b/Tests/Tests.MultiTarget.csproj
new file mode 100644
index 0000000..9988494
--- /dev/null
+++ b/Tests/Tests.MultiTarget.csproj
@@ -0,0 +1,28 @@
+
+  
+    net40;net45;net46;net461;net462;netcoreapp2.1
+  
+
+  
+    Exe
+    netcoreapp2.1
+    raylib-cs.ico
+    AnyCPU;x64;x86
+    true
+  
+
+  
+    
+  
+  
+  
+    
+  
+  
+  
+  
+
diff --git a/Tests/Test.NetCoreRT/nuget.config b/Tests/nuget.config
similarity index 100%
rename from Tests/Test.NetCoreRT/nuget.config
rename to Tests/nuget.config
diff --git a/Tests/Test.NetCore/raylib-cs.ico b/Tests/raylib-cs.ico
similarity index 100%
rename from Tests/Test.NetCore/raylib-cs.ico
rename to Tests/raylib-cs.ico