#ifndef RCR_LEVEL1PAYLOAD_SETUP_H_
#define RCR_LEVEL1PAYLOAD_SETUP_H_

#if defined(ARDUINO) && ARDUINO >= 100
	#include "arduino.h"
#else
	#include "WProgram.h"
#endif

namespace rcr {
namespace level1payload {

// Setup the object. Swallow any errors.
template<typename T, typename TArg>
inline void setup_object(T& obj, TArg arg, const char* display_name) {
  if (!obj.begin(arg)) {
    Serial.print("ERROR: ");
    Serial.print(display_name);
    Serial.println(" could not be found or setup.");

    // Swallow the error. Fault tolerance is required.
  }
  else {
    Serial.print("Success: ");
    Serial.print(display_name);
    Serial.println(" ready.");
  }
  Serial.println();
}
template<typename T>
inline void setup_object(T& obj, const char* display_name) {
  if (!obj.begin()) {
    Serial.print("ERROR: ");
    Serial.print(display_name);
    Serial.println(" could not be found or setup.");

    // Swallow the error. Fault tolerance is required.
  }
  else {
    Serial.print("Success: ");
    Serial.print(display_name);
    Serial.println(" ready.");
  }
  Serial.println();
}

} // namespace level1_payload
} // namespace rcr

#endif // RCR_LEVEL1PAYLOAD_SETUP_H_

#ifndef RCR_LEVEL1PAYLOAD_SETUP_H_
#define RCR_LEVEL1PAYLOAD_SETUP_H_

#if defined(ARDUINO) && ARDUINO >= 100
	#include "arduino.h"
#else
	#include "WProgram.h"
#endif

namespace rcr {
namespace level1payload {

// Setup the object. Swallow any errors.
template<typename T>
inline void setup_object(T& obj, const char* error_message, const char* success_message) {
  if (!obj.begin()) {
    Serial.println(error_message);
    // Swallow the error. Fault tolerance is required.
  }
  else {
    Serial.println(success_message);
  }
  Serial.println();
}

} // namespace level1_payload
} // namespace rcr

#endif // RCR_LEVEL1PAYLOAD_SETUP_H_

--- 
+++ 
@@ -11,14 +11,35 @@
 namespace level1payload {
 
 // Setup the object. Swallow any errors.
-template<typename T>
-inline void setup_object(T& obj, const char* error_message, const char* success_message) {
-  if (!obj.begin()) {
-    Serial.println(error_message);
+template<typename T, typename TArg>
+inline void setup_object(T& obj, TArg arg, const char* display_name) {
+  if (!obj.begin(arg)) {
+    Serial.print("ERROR: ");
+    Serial.print(display_name);
+    Serial.println(" could not be found or setup.");
+
     // Swallow the error. Fault tolerance is required.
   }
   else {
-    Serial.println(success_message);
+    Serial.print("Success: ");
+    Serial.print(display_name);
+    Serial.println(" ready.");
+  }
+  Serial.println();
+}
+template<typename T>
+inline void setup_object(T& obj, const char* display_name) {
+  if (!obj.begin()) {
+    Serial.print("ERROR: ");
+    Serial.print(display_name);
+    Serial.println(" could not be found or setup.");
+
+    // Swallow the error. Fault tolerance is required.
+  }
+  else {
+    Serial.print("Success: ");
+    Serial.print(display_name);
+    Serial.println(" ready.");
   }
   Serial.println();
 }
Add template overload for begin() arguments
