diff --git a/.monadid b/.monadid
index c27ca1c8c4dd7359361ab8a8ba59a376a8e84504..65a47854ee19d7c5a36ca238fe08a685b43268e7 100644
--- a/.monadid
+++ b/.monadid
@@ -1,4 +1,4 @@
 monad identification file
 This file is used for monad directory identification
-Built by toole1 on linux3.ews.illinois.edu
-Build Date: Sat Sep 24 01:49:21 CDT 2011
+Built by toole1 on linux4.ews.illinois.edu
+Build Date: Sat Sep 24 16:30:35 CDT 2011
diff --git a/proxy.h b/proxy.h
index 35e7eff20df4d1b2a51f03e6ac18997b043009e9..70b7d07db10db5a31a8d6821e71eb47c403e86ae 100755
--- a/proxy.h
+++ b/proxy.h
@@ -166,22 +166,34 @@ using std::cerr;
 using std::endl;
 
 #define UNIT_TEST(func,pointsInPart,pointsInTotal,timeout)             \
-	proxy::unit_test::return_type                                      \
-	func(proxy::unit_test & this_test);                                \
+	monad_shared::unit_test::return_type                               \
+	func(monad_shared::unit_test & this_test);                         \
 	proxy::add_unit_test                                               \
 		func##_adder(#func, func, pointsInPart,                        \
 		             pointsInTotal, timeout, false);                   \
-	proxy::unit_test::return_type                                      \
-	func(proxy::unit_test & this_test)
+	monad_shared::unit_test::return_type                               \
+	func(monad_shared::unit_test & this_test)
 
 #define VALGRIND_TEST(func,pointsInPart,pointsInTotal,timeout)         \
-	proxy::unit_test::return_type                                      \
-	func(proxy::unit_test & this_test);                                \
+	monad_shared::unit_test::return_type                               \
+	func(monad_shared::unit_test & this_test);                         \
 	proxy::add_unit_test                                               \
 		func##_adder(#func, func, pointsInPart,                        \
 		             pointsInTotal, timeout, true);                    \
-	proxy::unit_test::return_type                                      \
-	func(proxy::unit_test & this_test)
+	monad_shared::unit_test::return_type                               \
+	func(monad_shared::unit_test & this_test)
+
+#define HELPER_TEST(func, ...)                                         \
+	monad_shared::unit_test::return_type                               \
+	func(monad_shared::unit_test & this_test, __VA_ARGS__)
+
+#define CALL_HELPER(func, ...)                                         \
+	do {                                                               \
+		monad_shared::unit_test::return_type helperval =               \
+			func(this_test, __VA_ARGS__);                              \
+		if (helperval != monad_shared::unit_test::pass_string)         \
+			FAIL(helperval);                                           \
+	} while (0)
 
 #define OUTPUT_CHECK(func)                                                              \
 	bool output_check_##func(const std::string & output, const std::string & expected); \