diff --git a/GleeBug/Debugger.cpp b/GleeBug/Debugger.cpp
new file mode 100644
index 0000000..c4e575d
--- /dev/null
+++ b/GleeBug/Debugger.cpp
@@ -0,0 +1,6 @@
+#include "Debugger.h"
+
+namespace GleeBug
+{
+
+};
\ No newline at end of file
diff --git a/GleeBug/Debugger.h b/GleeBug/Debugger.h
new file mode 100644
index 0000000..12f539b
--- /dev/null
+++ b/GleeBug/Debugger.h
@@ -0,0 +1,52 @@
+#ifndef _DEBUGGER_H
+#define _DEBUGGER_H
+
+#include "_global.h"
+
+namespace GleeBug
+{
+ /**
+ \brief A debugger class.
+ */
+ class Debugger
+ {
+ public:
+ /**
+ \brief Constructs the Debugger instance.
+ */
+ Debugger();
+
+ /**
+ \brief Start the debuggee.
+ \param szFilePath Full pathname of the file to debug.
+ \param szCommandLine The command line to pass to the debuggee.
+ \param szCurrentDirectory Pathname of the current directory.
+ \return true if the debuggee was started correctly, false otherwise.
+ */
+ bool Init(const wchar_t* szFilePath,
+ const wchar_t* szCommandLine,
+ const wchar_t* szCurrentDirectory);
+
+ /**
+ \brief Stops the debuggee (terminate the process)
+ \return true if the debuggee was stopped correctly, false otherwise.
+ */
+ bool Stop();
+
+ /**
+ \brief Detaches the debuggee.
+ \return true if the debuggee was detached correctly, false otherwise.
+ */
+ bool Detach();
+
+ /**
+ \brief Run the debug loop (does not return until the debuggee is detached or terminated).
+ */
+ void Start();
+
+ private:
+ //state variables
+ };
+};
+
+#endif //_DEBUGGER_H
\ No newline at end of file
diff --git a/GleeBug/GleeBug.vcxproj b/GleeBug/GleeBug.vcxproj
index b0865ff..f2201fd 100644
--- a/GleeBug/GleeBug.vcxproj
+++ b/GleeBug/GleeBug.vcxproj
@@ -65,12 +65,14 @@
+
+
diff --git a/GleeBug/GleeBug.vcxproj.filters b/GleeBug/GleeBug.vcxproj.filters
index f86752c..44fcc73 100644
--- a/GleeBug/GleeBug.vcxproj.filters
+++ b/GleeBug/GleeBug.vcxproj.filters
@@ -27,6 +27,9 @@
Source Files
+
+ Source Files
+
@@ -41,5 +44,8 @@
Header Files
+
+ Header Files
+
\ No newline at end of file