diff --git a/.gitignore b/.gitignore
index 176c449..f848412 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,4 +26,5 @@ obj/
_ReSharper*/
[Tt]est[Rr]esult*
*.vssscc
-$tf*/
\ No newline at end of file
+$tf*/
+.vs/
diff --git a/ConsoleApplicationBase.sln b/ConsoleApplicationBase.sln
index 2cedf79..1763b1a 100644
--- a/ConsoleApplicationBase.sln
+++ b/ConsoleApplicationBase.sln
@@ -1,10 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30723.0
+# Visual Studio 15
+VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplicationBase", "ConsoleApplicationBase\ConsoleApplicationBase.csproj", "{D21CC334-9E7D-4A29-B6F9-5120351EC703}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestLib", "TestLib\TestLib.csproj", "{2304B2F5-905D-46CD-9BC1-F10973FBEDC4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -15,6 +17,10 @@ Global
{D21CC334-9E7D-4A29-B6F9-5120351EC703}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D21CC334-9E7D-4A29-B6F9-5120351EC703}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D21CC334-9E7D-4A29-B6F9-5120351EC703}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2304B2F5-905D-46CD-9BC1-F10973FBEDC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2304B2F5-905D-46CD-9BC1-F10973FBEDC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2304B2F5-905D-46CD-9BC1-F10973FBEDC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2304B2F5-905D-46CD-9BC1-F10973FBEDC4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ConsoleApplicationBase/App.config b/ConsoleApplicationBase/App.config
index 8e15646..73313cb 100644
--- a/ConsoleApplicationBase/App.config
+++ b/ConsoleApplicationBase/App.config
@@ -1,6 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+ ..\..\..\TestLib\bin\Debug\TestLib.dll
+
+
+
+
+
\ No newline at end of file
diff --git a/ConsoleApplicationBase/AppState.cs b/ConsoleApplicationBase/AppState.cs
new file mode 100644
index 0000000..c1eb3a0
--- /dev/null
+++ b/ConsoleApplicationBase/AppState.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplicationBase
+{
+ public static class AppState
+ {
+ static State _state;
+
+ static AppState()
+ {
+ _state = State.IDLE;
+ }
+
+ public static State GetState()
+ {
+ return _state;
+ }
+
+ public static void SetState(State newState)
+ {
+ _state = newState;
+ }
+
+ }
+
+ public enum State
+ {
+ ERROR = -1,
+ IDLE = 0,
+ RUNNING = 1
+ }
+}
diff --git a/ConsoleApplicationBase/CommandClassInfo.cs b/ConsoleApplicationBase/CommandClassInfo.cs
new file mode 100644
index 0000000..85fef97
--- /dev/null
+++ b/ConsoleApplicationBase/CommandClassInfo.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplicationBase
+{
+ public class CommandClassInfo
+ {
+ public Assembly OwningAssembly { get; }
+ public Dictionary> MethodDictionary { get; }
+
+ public CommandClassInfo(Assembly owningAssembly, Dictionary> methodDict)
+ {
+ this.OwningAssembly = owningAssembly;
+ this.MethodDictionary = methodDict;
+ }
+ }
+}
diff --git a/ConsoleApplicationBase/CommandHandler.cs b/ConsoleApplicationBase/CommandHandler.cs
new file mode 100644
index 0000000..2d878b3
--- /dev/null
+++ b/ConsoleApplicationBase/CommandHandler.cs
@@ -0,0 +1,303 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplicationBase
+{
+ public static class CommandHandler
+ {
+ //static List