diff --git a/libIRDB/include/util/IRDB_Objects.hpp b/libIRDB/include/util/IRDB_Objects.hpp
index 41f062525cb13c2d34ff2ef52f3f13170671baed..da2a6e8dc279b8c331d9d807d69738193494fe52 100644
--- a/libIRDB/include/util/IRDB_Objects.hpp
+++ b/libIRDB/include/util/IRDB_Objects.hpp
@@ -1,5 +1,5 @@
-#ifndef IRDB_Objects_h
-#define IRDB_Objects_h
+#ifndef IRDBObjects_h
+#define IRDBObjects_h
 
 #include <map>
 #include <utility>
diff --git a/libtransform/include/transform_step.h b/libtransform/include/transform_step.h
new file mode 100644
index 0000000000000000000000000000000000000000..5624af87da1967a8cd10b256a266cfb5d21a7196
--- /dev/null
+++ b/libtransform/include/transform_step.h
@@ -0,0 +1,32 @@
+#ifndef TransformStep_h
+#define TransformStep_h
+
+#include <libIRDB-util.hpp>
+
+
+namespace Transform_SDK
+{
+	class TransformStep_t
+	{
+		public:
+			// Step names must be unique, allows arguments to
+			// be directed to their matching transform steps.
+			virtual std::string GetStepName(void) = 0;
+
+			// Allows all steps to parse args before any step takes time to execute
+			virtual int ParseArgs(int argc, char* argv[])
+			{
+				return 0; // success
+			}
+				
+			virtual int ExecuteStep(libIRDB::IRDB_Objects_t *irdb_objects)
+			{
+				return 0; // success
+			}		
+	};
+}
+
+extern "C"
+Transform_SDK::TransformStep_t* TransformStepFactory(void);    
+
+#endif
diff --git a/libtransform/include/transform_step.hpp b/libtransform/include/transform_step.hpp
deleted file mode 100644
index c484f9c89827235930f7d54085cac6d5460f7c90..0000000000000000000000000000000000000000
--- a/libtransform/include/transform_step.hpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef transform_step_h
-#define transform_step_h
-
-#include <libIRDB-util.hpp>
-
-
-extern "C"
-int execute_step(int argc, char* argv[], libIRDB::IRFiles_t*);
-
-#endif