diff --git a/ReCodeItWPF/App.xaml b/ReCodeItWPF/App.xaml
new file mode 100644
index 0000000..636ea5b
--- /dev/null
+++ b/ReCodeItWPF/App.xaml
@@ -0,0 +1,9 @@
+<Application x:Class="ReCodeItWPF.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:local="clr-namespace:ReCodeItWPF"
+             StartupUri="MainWindow.xaml">
+    <Application.Resources>
+         
+    </Application.Resources>
+</Application>
diff --git a/ReCodeItWPF/App.xaml.cs b/ReCodeItWPF/App.xaml.cs
new file mode 100644
index 0000000..c741675
--- /dev/null
+++ b/ReCodeItWPF/App.xaml.cs
@@ -0,0 +1,14 @@
+using System.Configuration;
+using System.Data;
+using System.Windows;
+
+namespace ReCodeItWPF
+{
+    /// <summary>
+    /// Interaction logic for App.xaml
+    /// </summary>
+    public partial class App : Application
+    {
+    }
+
+}
diff --git a/ReCodeItWPF/AssemblyInfo.cs b/ReCodeItWPF/AssemblyInfo.cs
new file mode 100644
index 0000000..b0ec827
--- /dev/null
+++ b/ReCodeItWPF/AssemblyInfo.cs
@@ -0,0 +1,10 @@
+using System.Windows;
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None,            //where theme specific resource dictionaries are located
+                                                //(used if a resource is not found in the page,
+                                                // or application resource dictionaries)
+    ResourceDictionaryLocation.SourceAssembly   //where the generic resource dictionary is located
+                                                //(used if a resource is not found in the page,
+                                                // app, or any theme specific resource dictionaries)
+)]
diff --git a/ReCodeItWPF/MainWindow.xaml b/ReCodeItWPF/MainWindow.xaml
new file mode 100644
index 0000000..958c6dd
--- /dev/null
+++ b/ReCodeItWPF/MainWindow.xaml
@@ -0,0 +1,60 @@
+<Window x:Class="ReCodeItWPF.MainWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:local="clr-namespace:ReCodeItWPF"
+        mc:Ignorable="d"
+        Title="ReCodeIt V0.1.0 WPF - EXPERIEMENTAL" Height="800" Width="1200" Background="#FF495057">
+
+    <Grid x:Name="MainGrid" Margin="10,5,10,10">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="625*" />
+            <RowDefinition Height="144*" />
+        </Grid.RowDefinitions>
+        <Menu x:Name="MenuBar" Height="20" VerticalAlignment="Top" Background="#FF495057">
+            <MenuItem Header="File" />
+        </Menu>
+        <TabControl Margin="0,25,0,0" Background="#FF6D6767" Grid.RowSpan="3">
+            <TabItem x:Name="RMTabItem" Header="ReMapper">
+                <TabItem.Background>
+                    <LinearGradientBrush EndPoint="0,1">
+                        <GradientStop Color="#FFF0F0F0" />
+                        <GradientStop Color="#FFADB5BD" Offset="1" />
+                    </LinearGradientBrush>
+                </TabItem.Background>
+                <Grid x:Name="RMGrid" Background="#FF495057">
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="42*" />
+                        <RowDefinition Height="137*" />
+                    </Grid.RowDefinitions>
+                    <TreeView x:Name="RMTreeView" Width="295" Margin="879,0,0,0" Grid.RowSpan="2" Background="#FF6C757D" />
+                    <GroupBox x:Name="RMProjectControlGroupBox" Header="Project Control" Margin="10,10,872,480" Grid.RowSpan="2">
+
+                        <Canvas>
+                            <Button x:Name="RMTargetAssemblyButton" Content="Choose" Canvas.Left="193" Canvas.Top="10" HorizontalAlignment="Center" VerticalAlignment="Top" Width="63" ToolTip="Choose the target location of the assembly you wish to ReMap." Background="#FFADB5BD" Height="18" />
+                            <TextBox x:Name="RMTargetAssemblyTextBox" Canvas.Left="7" TextWrapping="Wrap" Canvas.Top="10" Width="181" HorizontalAlignment="Left" VerticalAlignment="Center" ToolTip="The target assembly you wish to ReMap. Use the one in the programs folder typically." IsReadOnly="True" Background="#FFCED4DA" />
+                            <Button x:Name="RMOutputLocationButton" Content="Choose" Canvas.Left="193" Canvas.Top="33" Width="63" ToolTip="The location you want the remapped dll placed." HorizontalAlignment="Center" VerticalAlignment="Top" Background="#FFADB5BD" Height="18" />
+                            <TextBox x:Name="RMOutputLocationTextBox" Canvas.Left="7" TextWrapping="Wrap" Canvas.Top="33" Width="181" ToolTip="The output location of the remap process" IsReadOnly="True" HorizontalAlignment="Center" VerticalAlignment="Top" Background="#FFCED4DA" />
+                            <Button x:Name="RMMappingPathButton" Content="Choose" Canvas.Left="193" Canvas.Top="56" Width="63" ToolTip="Load an existing mapping file from disk." HorizontalAlignment="Center" VerticalAlignment="Center" Background="#FFADB5BD" Height="18" />
+                            <CheckBox x:Name="RMRenameFieldsCheckbox" Content="Rename Fields" HorizontalAlignment="Left" Canvas.Left="7" Canvas.Top="79" VerticalAlignment="Top" Width="122" Background="#FFADB5BD" />
+                            <TextBox x:Name="RMMappingPathTextbox" Canvas.Left="7" TextWrapping="Wrap" Canvas.Top="56" Width="181" ToolTip="The output location of the remap process" IsReadOnly="True" Background="#FFCED4DA" HorizontalAlignment="Center" VerticalAlignment="Top" />
+                            <CheckBox x:Name="RMRenamePropertiesCheckbox" Content="Rename Properties" Canvas.Left="7" Canvas.Top="99" Width="122" HorizontalAlignment="Center" VerticalAlignment="Top" Background="#FFADB5BD" />
+                            <CheckBox x:Name="RMPublicizeCheckbox" Content="Publicize" Canvas.Left="134" Canvas.Top="79" Width="122" HorizontalAlignment="Left" VerticalAlignment="Center" Background="#FFADB5BD" />
+                            <CheckBox x:Name="RMUnsealCheckbox" Content="Unseal" Canvas.Left="134" Canvas.Top="99" Width="122" HorizontalAlignment="Center" VerticalAlignment="Top" Background="#FFADB5BD" />
+                        </Canvas>
+                    </GroupBox>
+                </Grid>
+            </TabItem>
+            <TabItem x:Name="CCTabItem" Header="ReCodeIt Compiler">
+                <TabItem.Background>
+                    <LinearGradientBrush EndPoint="0,1">
+                        <GradientStop Color="#FFF0F0F0" />
+                        <GradientStop Color="#FFADB5BD" Offset="1" />
+                    </LinearGradientBrush>
+                </TabItem.Background>
+                <Grid x:Name="CCGrid" Background="#FF495057" />
+            </TabItem>
+        </TabControl>
+    </Grid>
+</Window>
\ No newline at end of file
diff --git a/ReCodeItWPF/MainWindow.xaml.cs b/ReCodeItWPF/MainWindow.xaml.cs
new file mode 100644
index 0000000..1c216c8
--- /dev/null
+++ b/ReCodeItWPF/MainWindow.xaml.cs
@@ -0,0 +1,24 @@
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace ReCodeItWPF
+{
+    /// <summary>
+    /// Interaction logic for MainWindow.xaml
+    /// </summary>
+    public partial class MainWindow : Window
+    {
+        public MainWindow()
+        {
+            InitializeComponent();
+        }
+    }
+}
\ No newline at end of file
diff --git a/ReCodeItWPF/ReCodeItWPF.csproj b/ReCodeItWPF/ReCodeItWPF.csproj
new file mode 100644
index 0000000..e3e33e3
--- /dev/null
+++ b/ReCodeItWPF/ReCodeItWPF.csproj
@@ -0,0 +1,11 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFramework>net8.0-windows</TargetFramework>
+    <Nullable>enable</Nullable>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <UseWPF>true</UseWPF>
+  </PropertyGroup>
+
+</Project>
diff --git a/RecodeIt.sln b/RecodeIt.sln
index e6edcaf..697148f 100644
--- a/RecodeIt.sln
+++ b/RecodeIt.sln
@@ -9,6 +9,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReCodeItLib", "RecodeItLib\
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReCodeIt", "ReCodeItCLI\ReCodeIt.csproj", "{E404EC0B-06D2-4964-8ABA-A634F259655C}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReCodeItWPF", "ReCodeItWPF\ReCodeItWPF.csproj", "{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -83,6 +85,26 @@ Global
 		{E404EC0B-06D2-4964-8ABA-A634F259655C}.Release|x64.Build.0 = Release|Any CPU
 		{E404EC0B-06D2-4964-8ABA-A634F259655C}.Release|x86.ActiveCfg = Release|Any CPU
 		{E404EC0B-06D2-4964-8ABA-A634F259655C}.Release|x86.Build.0 = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|ARM.ActiveCfg = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|ARM.Build.0 = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|ARM64.Build.0 = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|x64.Build.0 = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Debug|x86.Build.0 = Debug|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|ARM.ActiveCfg = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|ARM.Build.0 = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|ARM64.ActiveCfg = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|ARM64.Build.0 = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|x64.ActiveCfg = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|x64.Build.0 = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|x86.ActiveCfg = Release|Any CPU
+		{E57C9B44-D0A1-4224-BF94-1E3ECEB3A4C6}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE