diff --git a/src/hei_includes.hpp b/src/hei_includes.hpp
index ac56493..61791f4 100644
--- a/src/hei_includes.hpp
+++ b/src/hei_includes.hpp
@@ -13,17 +13,6 @@
 #include <map>
 #include <vector>
 
-// The user application must define "hei_user_defines.hpp" with the following
-// macros:
-//
-//   Tracing (inputs same as printf() from <cstdio>):
-//      HEI_INF(...) // Generic informational trace
-//      HEI_ERR(...) // Error path trace
-//
-//  Assertion (at a minimum should work like assert() from <cassert>):
-//      HEI_ASSERT(expression)
-//
-
 // Internal includes
 #include <hei_chip.hpp>
 #include <hei_types.hpp>
diff --git a/src/hei_user_interface.hpp b/src/hei_user_interface.hpp
index d880ef4..17bccb1 100644
--- a/src/hei_user_interface.hpp
+++ b/src/hei_user_interface.hpp
@@ -3,44 +3,9 @@
 /**
  * @file hei_user_interface.hpp
  *
- * The method for actions like hardware register access will vary per user
+ * The process for actions like hardware register access will vary per user
  * application. Therefore, the user application must define all of the APIs
- * listed below.
- *
- *  1.  ReturnCode libhei::registerRead(const Chip& i_chip, void* o_buffer,
- *                      size_t& io_bufSize, uint64_t i_regType,
- *                      uint64_t i_address);
- *
- *  2.  ReturnCode libhei::registerWrite(const Chip& i_chip, void* i_buffer,
- *                            size_t& io_bufSize, uint64_t i_regType,
- *                            uint64_t i_address);
- *
- *  3. void libhei::hei_inf(...)
- *  4. void libhei::hei_err(...)
- *
- *  Example user application implementation of hei_inf(...) and hei_err(...)
- *
- *  void hei_inf(char* format, ...)
- *  {
- *      va_list args;
- *
- *      printf("I> ");
- *      va_start(args, format);
- *      vprintf(format, args);
- *      va_end(args);
- *      printf("\n");
- *  }
- *
- *  void hei_err(char* format, ...)
- *  {
- *      va_list args;
- *
- *      printf("E> ");
- *      va_start(args, format);
- *      vprintf(format, args);
- *      va_end(args);
- *      printf("\n");
- *  }
+ * declared in this header file.
  */
 
 #include <stdlib.h>
@@ -116,12 +81,42 @@
 bool registerWrite(const Chip& i_chip, void* i_buffer, size_t& io_bufSize,
                    uint64_t i_regType, uint64_t i_address);
 
-// used by HEI_INF macro in this library
-void hei_inf(char* format, ...); // implemented in user application
-
-// used by HEI_ERR macro in this library
-void hei_err(char* format, ...); // implemented in user application
-
 #endif
 
+/**
+ * @brief Prints an informational trace/log.
+ *
+ * This is similar to printing a single line of text to stdout. Example
+ * implementation:
+ *     void hei_inf(char* format, ...)
+ *     {
+ *         va_list args;
+ *         va_start(args, format);
+ *         vfprintf(stdout, format, args);
+ *         va_end(args);
+ *         fprintf(stdout, "\n");
+ *     }
+ *
+ * @param i_format The string format and variatic arguments.
+ */
+void hei_inf(char* i_format, ...);
+
+/**
+ * @brief Prints an error trace/log.
+ *
+ * This is similar to printing a single line of text to stderr. Example
+ * implementation:
+ *     void hei_inf(char* format, ...)
+ *     {
+ *         va_list args;
+ *         va_start(args, format);
+ *         vfprintf(stderr, format, args);
+ *         va_end(args);
+ *         fprintf(stderr, "\n");
+ *     }
+ *
+ * @param i_format The string format and variatic arguments.
+ */
+void hei_err(char* i_format, ...);
+
 } // end namespace libhei
