Merge latest stuff from master (what is to be v 1.5)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5003b91..f3bedd2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -86,7 +86,9 @@
 )
 set_target_properties(
     qcbor PROPERTIES
-    PUBLIC_HEADER "${HEADERS}"
+        VERSION ${PROJECT_VERSION}
+        SOVERSION ${PROJECT_VERSION_MAJOR}
+        PUBLIC_HEADER "${HEADERS}"
 )
 include(GNUInstallDirs)
 install(
diff --git a/README.md b/README.md
index fa511d2..805279d 100644
--- a/README.md
+++ b/README.md
@@ -103,9 +103,9 @@
      /* Encode */
      QCBOREncode_Init(&EncodeCtx, Buffer);
      QCBOREncode_OpenMap(&EncodeCtx);
-     QCBOREncode_AddTextToMap(&EncodeCtx, "Manufacturer", pE->Manufacturer);
-     QCBOREncode_AddInt64ToMap(&EncodeCtx, "Displacement", pE->uDisplacement);
-     QCBOREncode_AddInt64ToMap(&EncodeCtx, "Horsepower", pE->uHorsePower);
+     QCBOREncode_AddTextToMapSZ(&EncodeCtx, "Manufacturer", pE->Manufacturer);
+     QCBOREncode_AddInt64ToMapSZ(&EncodeCtx, "Displacement", pE->uDisplacement);
+     QCBOREncode_AddInt64ToMapSZ(&EncodeCtx, "Horsepower", pE->uHorsePower);
      QCBOREncode_CloseMap(&EncodeCtx);
      uErr = QCBOREncode_Finish(&EncodeCtx, &EncodedEngine);
 
diff --git a/example.c b/example.c
index ed5d597..c489ad6 100644
--- a/example.c
+++ b/example.c
@@ -130,7 +130,7 @@
  * @return  The pointer and length of the encoded CBOR or
  *          @ref NULLUsefulBufC on error.
  *
- * This encodes the input structure \c pEngine as a CBOR map of
+ * This encodes the input structure @c pEngine as a CBOR map of
  * label-value pairs. An array of float is one of the items in the
  * map.
  *
@@ -162,14 +162,14 @@
     /* Proceed to output all the items, letting the internal error
      * tracking do its work */
     QCBOREncode_OpenMap(&EncodeCtx);
-    QCBOREncode_AddTextToMap(&EncodeCtx, "Manufacturer", pEngine->Manufacturer);
-    QCBOREncode_AddInt64ToMap(&EncodeCtx, "NumCylinders", pEngine->uNumCylinders);
-    QCBOREncode_AddInt64ToMap(&EncodeCtx, "Displacement", pEngine->uDisplacement);
-    QCBOREncode_AddInt64ToMap(&EncodeCtx, "Horsepower", pEngine->uHorsePower);
+    QCBOREncode_AddTextToMapSZ(&EncodeCtx, "Manufacturer", pEngine->Manufacturer);
+    QCBOREncode_AddInt64ToMapSZ(&EncodeCtx, "NumCylinders", pEngine->uNumCylinders);
+    QCBOREncode_AddInt64ToMapSZ(&EncodeCtx, "Displacement", pEngine->uDisplacement);
+    QCBOREncode_AddInt64ToMapSZ(&EncodeCtx, "Horsepower", pEngine->uHorsePower);
 #ifndef USEFULBUF_DISABLE_ALL_FLOAT
-    QCBOREncode_AddDoubleToMap(&EncodeCtx, "DesignedCompression", pEngine->dDesignedCompresion);
+    QCBOREncode_AddDoubleToMapSZ(&EncodeCtx, "DesignedCompression", pEngine->dDesignedCompresion);
 #endif /* USEFULBUF_DISABLE_ALL_FLOAT */
-    QCBOREncode_OpenArrayInMap(&EncodeCtx, "Cylinders");
+   QCBOREncode_OpenArrayInMapSZ(&EncodeCtx, "Cylinders");
 #ifndef USEFULBUF_DISABLE_ALL_FLOAT
     for(int64_t i = 0 ; i < pEngine->uNumCylinders; i++) {
         QCBOREncode_AddDouble(&EncodeCtx,
@@ -177,7 +177,7 @@
     }
 #endif /* USEFULBUF_DISABLE_ALL_FLOAT */
     QCBOREncode_CloseArray(&EncodeCtx);
-    QCBOREncode_AddBoolToMap(&EncodeCtx, "Turbo", pEngine->bTurboCharged);
+    QCBOREncode_AddBoolToMapSZ(&EncodeCtx, "Turbo", pEngine->bTurboCharged);
     QCBOREncode_CloseMap(&EncodeCtx);
 
     /* Get the pointer and length of the encoded output. If there was
diff --git a/inc/qcbor/UsefulBuf.h b/inc/qcbor/UsefulBuf.h
index 24b087b..1ed558b 100644
--- a/inc/qcbor/UsefulBuf.h
+++ b/inc/qcbor/UsefulBuf.h
@@ -1361,8 +1361,8 @@
  * @param[in] uAmount  The amount to advance.
  *
  * This advances the position in the output buffer
- * by \c uAmount. This assumes that the
- * caller has written \c uAmount to the pointer obtained
+ * by @c uAmount. This assumes that the
+ * caller has written @c uAmount to the pointer obtained
  * with UsefulOutBuf_GetOutPlace().
  *
  * Warning: this bypasses the buffer safety provided by
diff --git a/inc/qcbor/qcbor_common.h b/inc/qcbor/qcbor_common.h
index b4ac5d5..89bfd00 100644
--- a/inc/qcbor/qcbor_common.h
+++ b/inc/qcbor/qcbor_common.h
@@ -172,17 +172,17 @@
 #define CBOR_TAG_ENC_AS_B16    23
 /** See QCBORDecode_EnterBstrWrapped()). */
 #define CBOR_TAG_CBOR          24
-/** See QCBOREncode_AddURI(). */
+/** See QCBOREncode_AddTURI(). */
 #define CBOR_TAG_URI           32
-/** See QCBOREncode_AddB64URLText(). */
+/** See QCBOREncode_AddTB64URLText(). */
 #define CBOR_TAG_B64URL        33
 /** See QCBOREncode_AddB64Text(). */
 #define CBOR_TAG_B64           34
-/** See QCBOREncode_AddRegex(). */
+/** See QCBOREncode_AddTRegex(). */
 #define CBOR_TAG_REGEX         35
 /** See QCBOREncode_AddMIMEData(). */
 #define CBOR_TAG_MIME          36
-/** See QCBOREncode_AddBinaryUUID(). */
+/** See QCBOREncode_AddTBinaryUUID(). */
 #define CBOR_TAG_BIN_UUID      37
 /** The data is a CBOR Web Token per [RFC 8392]
  *  (https://www.rfc-editor.org/rfc/rfc8392.html). No API is provided for this
diff --git a/inc/qcbor/qcbor_decode.h b/inc/qcbor/qcbor_decode.h
index 6ae57c4..e120bd2 100644
--- a/inc/qcbor/qcbor_decode.h
+++ b/inc/qcbor/qcbor_decode.h
@@ -596,7 +596,7 @@
 #ifndef QCBOR_DISABLE_EXP_AND_MANTISSA
       QCBORExpAndMantissa expAndMantissa;
 #endif /* ! QCBOR_DISABLE_EXP_AND_MANTISSA */
-      uint64_t    uTagNumber;
+      uint64_t    uTagNumber; /* Used internally during decoding */
 
       /* For use by user-defined tag content handlers */
       uint8_t     userDefined[24];
@@ -951,8 +951,8 @@
  *
  * See [Decode Error Overview](#Decode-Errors-Overview).
  *
- * If a decoding error occurs or previously occured, \c uDataType and
- * \c uLabelType will be set to @ref QCBOR_TYPE_NONE. If there is no
+ * If a decoding error occurs or previously occured, @c uDataType and
+ * @c uLabelType will be set to @ref QCBOR_TYPE_NONE. If there is no
  * need to know the specific error, it is sufficient to check for @ref
  * QCBOR_TYPE_NONE.
  *
@@ -1468,11 +1468,11 @@
  * and propagate up.
  *
  * When the error condition is set, QCBORDecode_VGetNext() will always
- * return an item with data and label type as \ref QCBOR_TYPE_NONE.
+ * return an item with data and label type as @ref QCBOR_TYPE_NONE.
  *
  * The main intent of this is to set a user-defined error code in the
- * range of \ref QCBOR_ERR_FIRST_USER_DEFINED to
- * \ref QCBOR_ERR_LAST_USER_DEFINED, but it is OK to set QCBOR-defined
+ * range of @ref QCBOR_ERR_FIRST_USER_DEFINED to
+ * @ref QCBOR_ERR_LAST_USER_DEFINED, but it is OK to set QCBOR-defined
  * error codes too.
  */
 static void
@@ -1697,10 +1697,13 @@
 
 
 
-/* ------------------------------------------------------------------------
- * Deprecated functions retained for backwards compatibility. Their use is
- * not recommended.
- * ---- */
+
+/* ========================================================================= *
+ *    BEGINNING OF DEPRECATED FUNCTIONS                                      *
+ *                                                                           *
+ *    There is no plan to remove these in future versions.                   *
+ *    They just have been replaced by something better.                      *
+ * ========================================================================= */
 
 /**
  * TODO: Initialize the CBOR decoder context with QCBOR v1 compatibility (deprecated).
@@ -1764,11 +1767,16 @@
 QCBORDecode_GetNthTagOfLast(const QCBORDecodeContext *pCtx, uint32_t uIndex);
 
 #endif /* ! QCBOR_DISABLE_TAGS */
+/* ========================================================================= *
+ *    END OF DEPRECATED FUNCTIONS                                            *
+ * ========================================================================= */
 
 
-/* ------------------------------------------------------------------------
- * Inline implementations of public functions defined above.
- * ---- */
+
+
+/* ========================================================================= *
+ *    BEGINNING OF PRIVATE INLINE IMPLEMENTATION                             *
+ * ========================================================================= */
 
 static inline uint32_t
 QCBORDecode_Tell(QCBORDecodeContext *pMe)
@@ -1830,6 +1838,10 @@
    pMe->uLastError = (uint8_t)uError;
 }
 
+/* ======================================================================== *
+ *    END OF PRIVATE INLINE IMPLEMENTATION                                  *
+ * ======================================================================== */
+
 
 /* A few cross checks on size constants and special value lengths */
 #if  QCBOR_MAP_OFFSET_CACHE_INVALID < QCBOR_MAX_DECODE_INPUT_SIZE
diff --git a/inc/qcbor/qcbor_encode.h b/inc/qcbor/qcbor_encode.h
index 10f3a95..79b92ac 100644
--- a/inc/qcbor/qcbor_encode.h
+++ b/inc/qcbor/qcbor_encode.h
@@ -259,7 +259,7 @@
  * support should be adequate.
  *
  * For example, the registered epoch date tag is supported in encoding
- * by QCBOREncode_AddDateEpoch() and in decoding by @ref
+ * by QCBOREncode_AddTDateEpoch() and in decoding by @ref
  * QCBOR_TYPE_DATE_EPOCH and the @c epochDate member of @ref
  * QCBORItem. This is typical of the built-in tag support. There is an
  * API to encode data for it and a @c QCBOR_TYPE_XXX when it is decoded.
@@ -684,7 +684,7 @@
 QCBOREncode_AddInt64(QCBOREncodeContext *pCtx, int64_t nNum);
 
 static void
-QCBOREncode_AddInt64ToMap(QCBOREncodeContext *pCtx, const char *szLabel, int64_t nNum);
+QCBOREncode_AddInt64ToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, int64_t nNum);
 
 static void
 QCBOREncode_AddInt64ToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, int64_t nNum);
@@ -708,7 +708,7 @@
 QCBOREncode_AddUInt64(QCBOREncodeContext *pCtx, uint64_t uNum);
 
 static void
-QCBOREncode_AddUInt64ToMap(QCBOREncodeContext *pCtx, const char *szLabel, uint64_t uNum);
+QCBOREncode_AddUInt64ToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, uint64_t uNum);
 
 static void
 QCBOREncode_AddUInt64ToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, uint64_t uNum);
@@ -802,7 +802,7 @@
 QCBOREncode_AddText(QCBOREncodeContext *pCtx, UsefulBufC Text);
 
 static void
-QCBOREncode_AddTextToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Text);
+QCBOREncode_AddTextToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Text);
 
 static void
 QCBOREncode_AddTextToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC Text);
@@ -820,7 +820,7 @@
 QCBOREncode_AddSZString(QCBOREncodeContext *pCtx, const char *szString);
 
 static void
-QCBOREncode_AddSZStringToMap(QCBOREncodeContext *pCtx, const char *szLabel, const char *szString);
+QCBOREncode_AddSZStringToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, const char *szString);
 
 static void
 QCBOREncode_AddSZStringToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, const char *szString);
@@ -876,7 +876,7 @@
 QCBOREncode_AddDouble(QCBOREncodeContext *pCtx, double dNum);
 
 static void
-QCBOREncode_AddDoubleToMap(QCBOREncodeContext *pCtx, const char *szLabel, double dNum);
+QCBOREncode_AddDoubleToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, double dNum);
 
 static void
 QCBOREncode_AddDoubleToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, double dNum);
@@ -898,7 +898,7 @@
 QCBOREncode_AddFloat(QCBOREncodeContext *pCtx, float fNum);
 
 static void
-QCBOREncode_AddFloatToMap(QCBOREncodeContext *pCtx, const char *szLabel, float fNum);
+QCBOREncode_AddFloatToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, float fNum);
 
 static void
 QCBOREncode_AddFloatToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, float dNum);
@@ -922,7 +922,7 @@
 QCBOREncode_AddDoubleNoPreferred(QCBOREncodeContext *pCtx, double dNum);
 
 static void
-QCBOREncode_AddDoubleNoPreferredToMap(QCBOREncodeContext *pCtx, const char *szLabel, double dNum);
+QCBOREncode_AddDoubleNoPreferredToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, double dNum);
 
 static void
 QCBOREncode_AddDoubleNoPreferredToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, double dNum);
@@ -946,7 +946,7 @@
 QCBOREncode_AddFloatNoPreferred(QCBOREncodeContext *pCtx, float fNum);
 
 static void
-QCBOREncode_AddFloatNoPreferredToMap(QCBOREncodeContext *pCtx, const char *szLabel, float fNum);
+QCBOREncode_AddFloatNoPreferredToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, float fNum);
 
 static void
 QCBOREncode_AddFloatNoPreferredToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, float fNum);
@@ -964,7 +964,7 @@
  *
  * For many of the common standard tags, a function to encode data
  * using it is provided and this is not needed. For example,
- * QCBOREncode_AddDateEpoch() already exists to output integers
+ * QCBOREncode_AddTDateEpoch() already exists to output integers
  * representing dates with the right tag.
  *
  * The tag is applied to the next data item added to the encoded
@@ -1032,19 +1032,6 @@
                                 int64_t             nDate);
 
 
-static void
-QCBOREncode_AddDateEpoch(QCBOREncodeContext *pCtx,
-                         int64_t             nDate);
-
-static void
-QCBOREncode_AddDateEpochToMap(QCBOREncodeContext *pCtx,
-                              const char         *szLabel,
-                              int64_t             nDate);
-
-static void
-QCBOREncode_AddDateEpochToMapN(QCBOREncodeContext *pCtx,
-                               int64_t             nLabel,
-                               int64_t             nDate);
 
 
 
@@ -1103,7 +1090,7 @@
 QCBOREncode_AddBytes(QCBOREncodeContext *pCtx, UsefulBufC Bytes);
 
 static void
-QCBOREncode_AddBytesToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Bytes);
+QCBOREncode_AddBytesToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Bytes);
 
 static void
 QCBOREncode_AddBytesToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC Bytes);
@@ -1128,7 +1115,7 @@
  * multiple writes.
  *
  * The pointer in @c pPlace is where to start writing. Writing is just
- * copying bytes to the location by the pointer in \c pPlace.  Writing
+ * copying bytes to the location by the pointer in @c pPlace.  Writing
  * past the length in @c pPlace will be writing off the end of the
  * output buffer.
  *
@@ -1205,16 +1192,6 @@
                                  UsefulBufC          Bytes);
 
 
-static void
-QCBOREncode_AddBinaryUUID(QCBOREncodeContext *pCtx, UsefulBufC Bytes);
-
-static void
-QCBOREncode_AddBinaryUUIDToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Bytes);
-
-static void
-QCBOREncode_AddBinaryUUIDToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC Bytes);
-
-
 /**
  * @brief Add a big number to encoded output using preferred serialization.
  *
@@ -1364,6 +1341,7 @@
                                    UsefulBufC          BigNumber);
 
 
+
 #ifndef QCBOR_DISABLE_EXP_AND_MANTISSA
 /**
  * @brief Add a decimal fraction.
@@ -1508,6 +1486,7 @@
                                                     int64_t             nBase10Exponent);
 
 
+
 /**
  * @brief Add a big floating-point number to the encoded output.
  *
@@ -1648,6 +1627,7 @@
                                              bool                bIsNegative,
                                              int64_t             nBase2Exponent);
 
+
 #endif /* ! QCBOR_DISABLE_EXP_AND_MANTISSA */
 
 
@@ -1668,7 +1648,7 @@
  * A URI in a NULL-terminated string, @c szURI, can be easily added with
  * this code:
  *
- *      QCBOREncode_AddURI(pCtx, UsefulBuf_FromSZ(szURI));
+ *      QCBOREncode_AddTURI(pCtx, QCBOR_ENCODE_AS_TAG, UsefulBuf_FromSZ(szURI));
  */
 static void
 QCBOREncode_AddTURI(QCBOREncodeContext *pCtx,
@@ -1688,21 +1668,6 @@
                           UsefulBufC          URI);
 
 
-static void
-QCBOREncode_AddURI(QCBOREncodeContext *pCtx,
-                   UsefulBufC          URI);
-
-static void
-QCBOREncode_AddURIToMap(QCBOREncodeContext *pCtx,
-                        const char         *szLabel,
-                        UsefulBufC          URI);
-
-static void
-QCBOREncode_AddURIToMapN(QCBOREncodeContext *pCtx,
-                         int64_t             nLabel,
-                         UsefulBufC          URI);
-
-
 /**
  * @brief Add Base64-encoded text to encoded output.
  *
@@ -1735,22 +1700,6 @@
                               UsefulBufC B64Text);
 
 
-static void
-QCBOREncode_AddB64Text(QCBOREncodeContext *pCtx,
-                       UsefulBufC          B64Text);
-
-static void
-QCBOREncode_AddB64TextToMap(QCBOREncodeContext *pCtx,
-                            const char         *szLabel,
-                            UsefulBufC          B64Text);
-
-static void
-QCBOREncode_AddB64TextToMapN(QCBOREncodeContext *pCtx,
-                             int64_t             nLabel,
-                             UsefulBufC          B64Text);
-
-
-
 /**
  * @brief Add base64url encoded data to encoded output.
  *
@@ -1784,21 +1733,6 @@
                                  UsefulBufC          B64Text);
 
 
-static void
-QCBOREncode_AddB64URLText(QCBOREncodeContext *pCtx,
-                          UsefulBufC          B64Text);
-
-static void
-QCBOREncode_AddB64URLTextToMap(QCBOREncodeContext *pCtx,
-                               const char         *szLabel,
-                               UsefulBufC          B64Text);
-
-static void
-QCBOREncode_AddB64URLTextToMapN(QCBOREncodeContext *pCtx,
-                                int64_t             nLabel,
-                                UsefulBufC          B64Text);
-
-
 /**
  * @brief Add Perl Compatible Regular Expression.
  *
@@ -1831,21 +1765,6 @@
                             UsefulBufC          Regex);
 
 
-static void
-QCBOREncode_AddRegex(QCBOREncodeContext *pCtx,
-                     UsefulBufC          Regex);
-
-static void
-QCBOREncode_AddRegexToMap(QCBOREncodeContext *pCtx,
-                          const char         *szLabel,
-                          UsefulBufC          Regex);
-
-static void
-QCBOREncode_AddRegexToMapN(QCBOREncodeContext *pCtx,
-                           int64_t             nLabel,
-                           UsefulBufC          Regex);
-
-
 /**
  * @brief MIME encoded data to the encoded output.
  *
@@ -1892,21 +1811,6 @@
                                UsefulBufC          MIMEData);
 
 
-static void
-QCBOREncode_AddMIMEData(QCBOREncodeContext *pCtx,
-                        UsefulBufC          MIMEData);
-
-static void
-QCBOREncode_AddMIMEDataToMap(QCBOREncodeContext *pCtx,
-                             const char         *szLabel,
-                             UsefulBufC          MIMEData);
-
-static void
-QCBOREncode_AddMIMEDataToMapN(QCBOREncodeContext *pCtx,
-                              int64_t             nLabel,
-                              UsefulBufC          MIMEData);
-
-
 /**
  * @brief  Add an RFC 3339 date string
  *
@@ -1948,21 +1852,6 @@
                                  const char         *szDate);
 
 
-static void
-QCBOREncode_AddDateString(QCBOREncodeContext *pCtx,
-                          const char         *szDate);
-
-static void
-QCBOREncode_AddDateStringToMap(QCBOREncodeContext *pCtx,
-                               const char         *szLabel,
-                               const char         *szDate);
-
-static void
-QCBOREncode_AddDateStringToMapN(QCBOREncodeContext *pCtx,
-                                int64_t             nLabel,
-                                const char         *szDate);
-
-
 /**
  * @brief  Add a date-only string.
  *
@@ -2020,7 +1909,7 @@
 QCBOREncode_AddBool(QCBOREncodeContext *pCtx, bool b);
 
 static void
-QCBOREncode_AddBoolToMap(QCBOREncodeContext *pCtx, const char *szLabel, bool b);
+QCBOREncode_AddBoolToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, bool b);
 
 static void
 QCBOREncode_AddBoolToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, bool b);
@@ -2042,7 +1931,7 @@
 QCBOREncode_AddNULL(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_AddNULLToMap(QCBOREncodeContext *pCtx, const char *szLabel);
+QCBOREncode_AddNULLToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel);
 
 static void
 QCBOREncode_AddNULLToMapN(QCBOREncodeContext *pCtx, int64_t nLabel);
@@ -2066,7 +1955,7 @@
 QCBOREncode_AddUndef(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_AddUndefToMap(QCBOREncodeContext *pCtx, const char *szLabel);
+QCBOREncode_AddUndefToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel);
 
 static void
 QCBOREncode_AddUndefToMapN(QCBOREncodeContext *pCtx, int64_t nLabel);
@@ -2075,7 +1964,7 @@
 /**
  * @brief Add a simple value.
  *
- * @param[in] pMe    The encode context.
+ * @param[in] pCtx    The encode context.
  * @param[in] uNum   The simple value.
  *
  * QCBOREncode_AddBool(), QCBOREncode_AddUndef() and
@@ -2091,15 +1980,15 @@
  * https://www.iana.org/assignments/cbor-simple-values/cbor-simple-values.xhtml
  */
 static void
-QCBOREncode_AddSimple(QCBOREncodeContext *pMe, const uint8_t uNum);
+QCBOREncode_AddSimple(QCBOREncodeContext *pCtx, const uint8_t uNum);
 
 static void
-QCBOREncode_AddSimpleToMap(QCBOREncodeContext *pMe,
-                           const char         *szLabel,
-                           const uint8_t       uSimple);
+QCBOREncode_AddSimpleToMapSZ(QCBOREncodeContext *pCtx,
+                             const char         *szLabel,
+                             const uint8_t       uSimple);
 
 static void
-QCBOREncode_AddSimpleToMapN(QCBOREncodeContext *pMe,
+QCBOREncode_AddSimpleToMapN(QCBOREncodeContext *pCtx,
                             const int64_t       nLabel,
                             const uint8_t       uSimple);
 
@@ -2141,7 +2030,7 @@
 QCBOREncode_OpenArray(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_OpenArrayInMap(QCBOREncodeContext *pCtx, const char *szLabel);
+QCBOREncode_OpenArrayInMapSZ(QCBOREncodeContext *pCtx, const char *szLabel);
 
 static void
 QCBOREncode_OpenArrayInMapN(QCBOREncodeContext *pCtx,  int64_t nLabel);
@@ -2209,7 +2098,7 @@
 QCBOREncode_OpenMap(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_OpenMapInMap(QCBOREncodeContext *pCtx, const char *szLabel);
+QCBOREncode_OpenMapInMapSZ(QCBOREncodeContext *pCtx, const char *szLabel);
 
 static void
 QCBOREncode_OpenMapInMapN(QCBOREncodeContext *pCtx, int64_t nLabel);
@@ -2253,8 +2142,8 @@
 QCBOREncode_OpenArrayIndefiniteLength(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_OpenArrayIndefiniteLengthInMap(QCBOREncodeContext *pCtx,
-                                           const char         *szLabel);
+QCBOREncode_OpenArrayIndefiniteLengthInMapSZ(QCBOREncodeContext *pCtx,
+                                             const char         *szLabel);
 
 static void
 QCBOREncode_OpenArrayIndefiniteLengthInMapN(QCBOREncodeContext *pCtx,
@@ -2287,12 +2176,14 @@
 QCBOREncode_OpenMapIndefiniteLength(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_OpenMapIndefiniteLengthInMap(QCBOREncodeContext *pCtx,
-                                         const char         *szLabel);
+QCBOREncode_OpenMapIndefiniteLengthInMapSZ(QCBOREncodeContext *pCtx,
+                                           const char         *szLabel);
 
 static void
 QCBOREncode_OpenMapIndefiniteLengthInMapN(QCBOREncodeContext *pCtx,
-                                          int64_t            nLabel);
+                                         int64_t              nLabel);
+
+
 
 
 /**
@@ -2369,7 +2260,7 @@
 QCBOREncode_BstrWrap(QCBOREncodeContext *pCtx);
 
 static void
-QCBOREncode_BstrWrapInMap(QCBOREncodeContext *pCtx, const char *szLabel);
+QCBOREncode_BstrWrapInMapSZ(QCBOREncodeContext *pCtx, const char *szLabel);
 
 static void
 QCBOREncode_BstrWrapInMapN(QCBOREncodeContext *pCtx, int64_t nLabel);
@@ -2425,7 +2316,7 @@
  * This cancels QCBOREncode_BstrWrap() making the encoding as if it
  * were never called.
  *
- * WARNING: This does not work on QCBOREncode_BstrWrapInMap()
+ * WARNING: This does not work on QCBOREncode_BstrWrapInMapSZ()
  * or QCBOREncode_BstrWrapInMapN() and there is no error detection
  * of an attempt at their use.
  *
@@ -2459,7 +2350,7 @@
 QCBOREncode_AddEncoded(QCBOREncodeContext *pCtx, UsefulBufC Encoded);
 
 static void
-QCBOREncode_AddEncodedToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Encoded);
+QCBOREncode_AddEncodedToMapSZ(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Encoded);
 
 static void
 QCBOREncode_AddEncodedToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC Encoded);
@@ -2917,9 +2808,337 @@
 #endif /* ! QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
 
 
-/* =========================================================================
-     BEGINNING OF PRIVATE IMPLEMENTATION
-   ========================================================================= */
+/* ========================================================================= *
+ *    BEGINNING OF DEPRECATED FUNCTIONS                                      *
+ *                                                                           *
+ *    There is no plan to remove these in future versions.                   *
+ *    They just have been replaced by something better.                      *
+ * ========================================================================= */
+
+/* Use QCBOREncode_AddInt64ToMapSZ() instead */
+static void
+QCBOREncode_AddInt64ToMap(QCBOREncodeContext *pCtx, const char *szLabel, int64_t nNum);
+
+/* Use QCBOREncode_AddUInt64ToMapSZ() instead */
+static void
+QCBOREncode_AddUInt64ToMap(QCBOREncodeContext *pCtx, const char *szLabel, uint64_t uNum);
+
+/* Use QCBOREncode_AddTextToMapSZ() instead */
+static void
+QCBOREncode_AddTextToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Text);
+
+/* Use QCBOREncode_AddSZStringToMapSZ() instead */
+static void
+QCBOREncode_AddSZStringToMap(QCBOREncodeContext *pCtx, const char *szLabel, const char *szString);
+
+#ifndef USEFULBUF_DISABLE_ALL_FLOAT
+/* Use QCBOREncode_AddDoubleToMapSZ() instead */
+static void
+QCBOREncode_AddDoubleToMap(QCBOREncodeContext *pCtx, const char *szLabel, double dNum);
+
+/* Use QCBOREncode_AddFloatToMapSZ() instead */
+static void
+QCBOREncode_AddFloatToMap(QCBOREncodeContext *pCtx, const char *szLabel, float fNum);
+
+/* Use QCBOREncode_AddDoubleNoPreferredToMapSZ() instead */
+static void
+QCBOREncode_AddDoubleNoPreferredToMap(QCBOREncodeContext *pCtx, const char *szLabel, double dNum);
+
+/* Use QCBOREncode_AddFloatNoPreferredToMapSZ() instead */
+static void
+QCBOREncode_AddFloatNoPreferredToMap(QCBOREncodeContext *pCtx, const char *szLabel, float fNum);
+#endif /* ! USEFULBUF_DISABLE_ALL_FLOAT */
+
+/* Use QCBOREncode_AddTDateEpoch() instead */
+static void
+QCBOREncode_AddDateEpoch(QCBOREncodeContext *pCtx, int64_t nDate);
+
+/* Use QCBOREncode_AddTDateEpochToMapSZ() instead */
+static void
+QCBOREncode_AddDateEpochToMap(QCBOREncodeContext *pCtx, const char *szLabel, int64_t nDate);
+
+/* Use QCBOREncode_AddTDateEpochToMapN() instead */
+static void
+QCBOREncode_AddDateEpochToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, int64_t nDate);
+
+/* Use QCBOREncode_AddBytesToMapSZ() instead */
+static void
+QCBOREncode_AddBytesToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Bytes);
+
+/* Use QCBOREncode_AddTBinaryUUID() instead */
+static void
+QCBOREncode_AddBinaryUUID(QCBOREncodeContext *pCtx, UsefulBufC Bytes);
+
+/* Use QCBOREncode_AddTBinaryUUIDToMapSZ() instead */
+static void
+QCBOREncode_AddBinaryUUIDToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Bytes);
+
+/* Use QCBOREncode_AddTBinaryUUIDToMapN() instead */
+static void
+QCBOREncode_AddBinaryUUIDToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC Bytes);
+
+/* Use QCBOREncode_AddTPositiveBignum() instead */
+static void
+QCBOREncode_AddPositiveBignum(QCBOREncodeContext *pCtx, UsefulBufC BigNumber);
+
+/* QCBOREncode_AddTPositiveBignumToMapSZ() instead */
+static void
+QCBOREncode_AddPositiveBignumToMap(QCBOREncodeContext *pCtx,
+                                   const char         *szLabel,
+                                   UsefulBufC          BigNumber);
+
+/* Use QCBOREncode_AddTPositiveBignumToMapN() instead */
+static void
+QCBOREncode_AddPositiveBignumToMapN(QCBOREncodeContext *pCtx,
+                                    int64_t             nLabel,
+                                    UsefulBufC          BigNumber);
+
+/* Use QCBOREncode_AddTNegativeBignum() instead */
+static void
+QCBOREncode_AddNegativeBignum(QCBOREncodeContext *pCtx, UsefulBufC BigNumber);
+
+/* Use QCBOREncode_AddTNegativeBignumToMapSZ() instead */
+static void
+QCBOREncode_AddNegativeBignumToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC BigNumber);
+
+/* Use QCBOREncode_AddTNegativeBignumToMapN() instead */
+static void
+QCBOREncode_AddNegativeBignumToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC BigNumber);
+
+
+#ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
+
+/* Use QCBOREncode_AddTDecimalFraction() instead */
+static void
+QCBOREncode_AddDecimalFraction(QCBOREncodeContext *pCtx,
+                               int64_t             nMantissa,
+                               int64_t             nBase10Exponent);
+
+/* Use QCBOREncode_AddTDecimalFractionToMapSZ() instead */
+static void
+QCBOREncode_AddDecimalFractionToMap(QCBOREncodeContext *pCtx,
+                                    const char         *szLabel,
+                                    int64_t             nMantissa,
+                                    int64_t             nBase10Exponent);
+
+/* Use QCBOREncode_AddTDecimalFractionToMapN() instead */
+static void
+QCBOREncode_AddDecimalFractionToMapN(QCBOREncodeContext *pCtx,
+                                     int64_t             nLabel,
+                                     int64_t             nMantissa,
+                                     int64_t             nBase10Exponent);
+
+/* Use QCBOREncode_AddTDecimalFractionBigNum() instead */
+static void
+QCBOREncode_AddDecimalFractionBigNum(QCBOREncodeContext *pCtx,
+                                     UsefulBufC          Mantissa,
+                                     bool                bIsNegative,
+                                     int64_t             nBase10Exponent);
+
+/* Use QCBOREncode_AddTDecimalFractionBigNumToMapSZ() instead */
+static void
+QCBOREncode_AddDecimalFractionBigNumToMapSZ(QCBOREncodeContext *pCtx,
+                                            const char         *szLabel,
+                                            UsefulBufC          Mantissa,
+                                            bool                bIsNegative,
+                                            int64_t             nBase10Exponent);
+
+/* Use QCBOREncode_AddTDecimalFractionBigNumToMapN() instead */
+static void
+QCBOREncode_AddDecimalFractionBigNumToMapN(QCBOREncodeContext *pCtx,
+                                           int64_t             nLabel,
+                                           UsefulBufC          Mantissa,
+                                           bool                bIsNegative,
+                                           int64_t             nBase10Exponent);
+
+/* Use QCBOREncode_AddTBigFloat() instead */
+static void
+QCBOREncode_AddBigFloat(QCBOREncodeContext *pCtx,
+                        int64_t             nMantissa,
+                        int64_t             nBase2Exponent);
+
+/* Use QCBOREncode_AddTBigFloatToMapSZ() instead */
+static void
+QCBOREncode_AddBigFloatToMap(QCBOREncodeContext *pCtx,
+                             const char         *szLabel,
+                             int64_t             nMantissa,
+                             int64_t             nBase2Exponent);
+
+/* Use QCBOREncode_AddTBigFloatToMapN() instead */
+static void
+QCBOREncode_AddBigFloatToMapN(QCBOREncodeContext *pCtx,
+                              int64_t             nLabel,
+                              int64_t             nMantissa,
+                              int64_t             nBase2Exponent);
+
+/* Use QCBOREncode_AddTBigFloatBigNum() instead */
+static void
+QCBOREncode_AddBigFloatBigNum(QCBOREncodeContext *pCtx,
+                              UsefulBufC          Mantissa,
+                              bool                bIsNegative,
+                              int64_t             nBase2Exponent);
+
+/* Use QCBOREncode_AddTBigFloatBigNumToMapSZ() instead */
+static void
+QCBOREncode_AddBigFloatBigNumToMap(QCBOREncodeContext *pCtx,
+                                   const char         *szLabel,
+                                   UsefulBufC          Mantissa,
+                                   bool                bIsNegative,
+                                   int64_t             nBase2Exponent);
+
+/* Use QCBOREncode_AddTBigFloatBigNumToMapN() instead */
+static void
+QCBOREncode_AddBigFloatBigNumToMapN(QCBOREncodeContext *pCtx,
+                                    int64_t             nLabel,
+                                    UsefulBufC          Mantissa,
+                                    bool                bIsNegative,
+                                    int64_t             nBase2Exponent);
+#endif /* ! QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
+
+/* Use QCBOREncode_AddTURI() instead */
+static void
+QCBOREncode_AddURI(QCBOREncodeContext *pCtx, UsefulBufC URI);
+
+/* Use QCBOREncode_AddTURIToMapSZ() instead */
+static void
+QCBOREncode_AddURIToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC URI);
+
+/* Use QCBOREncode_AddTURIToMapN() instead */
+static void
+QCBOREncode_AddURIToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC URI);
+
+/* Use QCBOREncode_AddTB64Text() instead */
+static void
+QCBOREncode_AddB64Text(QCBOREncodeContext *pCtx, UsefulBufC B64Text);
+
+/* Use QCBOREncode_AddTB64TextToMapSZ() instead */
+static void
+QCBOREncode_AddB64TextToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC B64Text);
+
+/* Use QCBOREncode_AddTB64TextToMapN() instead */
+static void
+QCBOREncode_AddB64TextToMapN(QCBOREncodeContext *pCtx, int64_t nLabel, UsefulBufC B64Text);
+
+/* Use QCBOREncode_AddTB64URLText() instead */
+static void
+QCBOREncode_AddB64URLText(QCBOREncodeContext *pCtx, UsefulBufC B64Text);
+
+/* Use QCBOREncode_AddTB64URLTextToMapSZ() instead */
+static void
+QCBOREncode_AddB64URLTextToMap(QCBOREncodeContext *pCtx,
+                               const char         *szLabel,
+                               UsefulBufC          B64Text);
+
+/* Use QCBOREncode_AddTB64URLTextToMapN() instead */
+static void
+QCBOREncode_AddB64URLTextToMapN(QCBOREncodeContext *pCtx,
+                                int64_t             nLabel,
+                                UsefulBufC          B64Text);
+
+/* Use QCBOREncode_AddTRegex() instead */
+static void
+QCBOREncode_AddRegex(QCBOREncodeContext *pCtx, UsefulBufC Regex);
+
+/* Use QCBOREncode_AddTRegexToMapSZ() instead */
+static void
+QCBOREncode_AddRegexToMap(QCBOREncodeContext *pCtx,
+                          const char         *szLabel,
+                          UsefulBufC          Regex);
+
+/* Use QCBOREncode_AddTRegexToMapN() instead */
+static void
+QCBOREncode_AddRegexToMapN(QCBOREncodeContext *pCtx,
+                           int64_t             nLabel,
+                           UsefulBufC          Regex);
+
+/* Use QCBOREncode_AddTMIMEData() instead */
+static void
+QCBOREncode_AddMIMEData(QCBOREncodeContext *pCtx, UsefulBufC MIMEData);
+
+/* Use QCBOREncode_AddTMIMEDataToMapSZ() instead */
+static void
+QCBOREncode_AddMIMEDataToMap(QCBOREncodeContext *pCtx,
+                             const char         *szLabel,
+                             UsefulBufC          MIMEData);
+
+/* Use QCBOREncode_AddTMIMEDataToMapN() instead */
+static void
+QCBOREncode_AddMIMEDataToMapN(QCBOREncodeContext *pCtx,
+                              int64_t             nLabel,
+                              UsefulBufC          MIMEData);
+
+/* Use QCBOREncode_AddTDateString() instead */
+static void
+QCBOREncode_AddDateString(QCBOREncodeContext *pCtx, const char *szDate);
+
+/* Use QCBOREncode_AddTDateStringToMapSZ() instead */
+static void
+QCBOREncode_AddDateStringToMap(QCBOREncodeContext *pCtx,
+                               const char         *szLabel,
+                               const char         *szDate);
+
+/* Use QCBOREncode_AddTDateStringToMapN instead */
+static void
+QCBOREncode_AddDateStringToMapN(QCBOREncodeContext *pCtx,
+                                int64_t             nLabel,
+                                const char         *szDate);
+
+/* Use QCBOREncode_AddBoolToMapSZ() instead */
+static void
+QCBOREncode_AddBoolToMap(QCBOREncodeContext *pCtx, const char *szLabel, bool b);
+
+/* Use QCBOREncode_AddNULLToMapSZ() instead */
+static void
+QCBOREncode_AddNULLToMap(QCBOREncodeContext *pCtx, const char *szLabel);
+
+/* Use QCBOREncode_AddUndefToMapSZ() instead */
+static void
+QCBOREncode_AddUndefToMap(QCBOREncodeContext *pCtx, const char *szLabel);
+
+/* Use QCBOREncode_AddSimpleToMapSZ instead */
+static void
+QCBOREncode_AddSimpleToMap(QCBOREncodeContext *pCtx,
+                           const char         *szLabel,
+                           const uint8_t       uSimple);
+
+/* Use QCBOREncode_OpenArrayInMapSZ() instead */
+static void
+QCBOREncode_OpenArrayInMap(QCBOREncodeContext *pCtx, const char *szLabel);
+
+/* Use QCBOREncode_OpenMapInMapSZ() instead */
+static void
+QCBOREncode_OpenMapInMap(QCBOREncodeContext *pCtx, const char *szLabel);
+
+/* Use QCBOREncode_OpenArrayIndefiniteLengthInMapSZ() instead */
+static void
+QCBOREncode_OpenArrayIndefiniteLengthInMap(QCBOREncodeContext *pCtx,
+                                           const char         *szLabel);
+
+/* Use QCBOREncode_OpenMapIndefiniteLengthInMapSZ() instead */
+static void
+QCBOREncode_OpenMapIndefiniteLengthInMap(QCBOREncodeContext *pCtx,
+                                         const char         *szLabel);
+
+/* Use QCBOREncode_BstrWrapInMapSZ() instead */
+static void
+QCBOREncode_BstrWrapInMap(QCBOREncodeContext *pCtx, const char *szLabel);
+
+/* Use QCBOREncode_AddEncodedToMapSZ() instead */
+static void
+QCBOREncode_AddEncodedToMap(QCBOREncodeContext *pCtx, const char *szLabel, UsefulBufC Encoded);
+
+
+/* ========================================================================= *
+ *    END OF DEPRECATED FUNCTIONS                                            *
+ * ========================================================================= */
+
+
+
+
+
+/* ========================================================================= *
+ *    BEGINNING OF PRIVATE INLINE IMPLEMENTATION                             *
+ * ========================================================================= */
 
 /* Semi-private funcion used by public inline functions. See qcbor_encode.c */
 void QCBOREncode_Private_AppendCBORHead(QCBOREncodeContext *pMe,
@@ -3079,15 +3298,21 @@
 
 
 static inline void
-QCBOREncode_AddInt64ToMap(QCBOREncodeContext *pMe,
-                          const char        *szLabel,
-                          const int64_t      nNum)
+QCBOREncode_AddInt64ToMapSZ(QCBOREncodeContext *pMe,
+                            const char        *szLabel,
+                            const int64_t      nNum)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddInt64(pMe, nNum);
 }
 
 static inline void
+QCBOREncode_AddInt64ToMap(QCBOREncodeContext *pMe, const char *szLabel, int64_t nNum)
+{
+   QCBOREncode_AddInt64ToMapSZ(pMe, szLabel, nNum);
+}
+
+static inline void
 QCBOREncode_AddInt64ToMapN(QCBOREncodeContext *pMe,
                            const int64_t       nLabel,
                            const int64_t       nNum)
@@ -3105,15 +3330,21 @@
 
 
 static inline void
-QCBOREncode_AddUInt64ToMap(QCBOREncodeContext *pMe,
-                           const char         *szLabel,
-                           const uint64_t      uNum)
+QCBOREncode_AddUInt64ToMapSZ(QCBOREncodeContext *pMe,
+                             const char         *szLabel,
+                             const uint64_t      uNum)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddUInt64(pMe, uNum);
 }
 
 static inline void
+QCBOREncode_AddUInt64ToMap(QCBOREncodeContext *pMe, const char *szLabel, uint64_t uNum)
+{
+   QCBOREncode_AddUInt64ToMapSZ(pMe, szLabel, uNum);
+}
+
+static inline void
 QCBOREncode_AddUInt64ToMapN(QCBOREncodeContext *pMe,
                             const int64_t       nLabel,
                             const uint64_t      uNum)
@@ -3151,15 +3382,21 @@
 }
 
 static inline void
-QCBOREncode_AddTextToMap(QCBOREncodeContext *pMe,
-                         const char         *szLabel,
-                         const UsefulBufC    Text)
+QCBOREncode_AddTextToMapSZ(QCBOREncodeContext *pMe,
+                           const char         *szLabel,
+                           const UsefulBufC    Text)
 {
    QCBOREncode_AddText(pMe, UsefulBuf_FromSZ(szLabel));
    QCBOREncode_AddText(pMe, Text);
 }
 
 static inline void
+QCBOREncode_AddTextToMap(QCBOREncodeContext *pMe, const char *szLabel, UsefulBufC Text)
+{
+   QCBOREncode_AddTextToMapSZ(pMe, szLabel, Text);
+}
+
+static inline void
 QCBOREncode_AddTextToMapN(QCBOREncodeContext *pMe,
                           const int64_t       nLabel,
                           const UsefulBufC    Text)
@@ -3176,15 +3413,21 @@
 }
 
 static inline void
-QCBOREncode_AddSZStringToMap(QCBOREncodeContext *pMe,
-                             const char         *szLabel,
-                             const char         *szString)
+QCBOREncode_AddSZStringToMapSZ(QCBOREncodeContext *pMe,
+                               const char         *szLabel,
+                               const char         *szString)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddSZString(pMe, szString);
 }
 
 static inline void
+QCBOREncode_AddSZStringToMap(QCBOREncodeContext *pMe, const char *szLabel, const char *szString)
+{
+   QCBOREncode_AddSZStringToMapSZ(pMe, szLabel, szString);
+}
+
+static inline void
 QCBOREncode_AddSZStringToMapN(QCBOREncodeContext *pMe,
                               const int64_t       nLabel,
                               const char         *szString)
@@ -3240,15 +3483,21 @@
 }
 
 static inline void
-QCBOREncode_AddDoubleToMap(QCBOREncodeContext *pMe,
-                           const char         *szLabel,
-                           const double        dNum)
+QCBOREncode_AddDoubleToMapSZ(QCBOREncodeContext *pMe,
+                             const char         *szLabel,
+                             const double        dNum)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddDouble(pMe, dNum);
 }
 
 static inline void
+QCBOREncode_AddDoubleToMap(QCBOREncodeContext *pMe, const char *szLabel, double dNum)
+{
+   QCBOREncode_AddDoubleToMapSZ(pMe, szLabel, dNum);
+}
+
+static inline void
 QCBOREncode_AddDoubleToMapN(QCBOREncodeContext *pMe,
                             const int64_t       nLabel,
                             const double        dNum)
@@ -3269,15 +3518,21 @@
 }
 
 static inline void
-QCBOREncode_AddFloatToMap(QCBOREncodeContext *pMe,
-                          const char         *szLabel,
-                          const float         dNum)
+QCBOREncode_AddFloatToMapSZ(QCBOREncodeContext *pMe,
+                            const char         *szLabel,
+                            const float         dNum)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddFloat(pMe, dNum);
 }
 
 static inline void
+QCBOREncode_AddFloatToMap(QCBOREncodeContext *pMe, const char *szLabel, float fNum)
+{
+   QCBOREncode_AddFloatToMapSZ(pMe, szLabel, fNum);
+}
+
+static inline void
 QCBOREncode_AddFloatToMapN(QCBOREncodeContext *pMe,
                            const int64_t       nLabel,
                            const float         fNum)
@@ -3287,15 +3542,21 @@
 }
 
 static inline void
-QCBOREncode_AddDoubleNoPreferredToMap(QCBOREncodeContext *pMe,
-                                      const char         *szLabel,
-                                      const double        dNum)
+QCBOREncode_AddDoubleNoPreferredToMapSZ(QCBOREncodeContext *pMe,
+                                        const char         *szLabel,
+                                        const double        dNum)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddDoubleNoPreferred(pMe, dNum);
 }
 
 static inline void
+QCBOREncode_AddDoubleNoPreferredToMap(QCBOREncodeContext *pMe, const char *szLabel, double dNum)
+{
+   QCBOREncode_AddDoubleNoPreferredToMapSZ(pMe, szLabel, dNum);
+}
+
+static inline void
 QCBOREncode_AddDoubleNoPreferredToMapN(QCBOREncodeContext *pMe,
                                        const int64_t       nLabel,
                                        const double        dNum)
@@ -3305,15 +3566,21 @@
 }
 
 static inline void
-QCBOREncode_AddFloatNoPreferredToMap(QCBOREncodeContext *pMe,
-                                     const char         *szLabel,
-                                     const float         dNum)
+QCBOREncode_AddFloatNoPreferredToMapSZ(QCBOREncodeContext *pMe,
+                                       const char         *szLabel,
+                                       const float         dNum)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddFloatNoPreferred(pMe, dNum);
 }
 
 static inline void
+QCBOREncode_AddFloatNoPreferredToMap(QCBOREncodeContext *pMe, const char *szLabel, float fNum)
+{
+   QCBOREncode_AddFloatNoPreferredToMapSZ(pMe, szLabel, fNum);
+}
+
+static inline void
 QCBOREncode_AddFloatNoPreferredToMapN(QCBOREncodeContext *pMe,
                                       const int64_t       nLabel,
                                       const float         dNum)
@@ -3424,15 +3691,21 @@
 }
 
 static inline void
-QCBOREncode_AddBytesToMap(QCBOREncodeContext *pMe,
-                          const char         *szLabel,
-                          const UsefulBufC    Bytes)
+QCBOREncode_AddBytesToMapSZ(QCBOREncodeContext *pMe,
+                            const char         *szLabel,
+                            const UsefulBufC    Bytes)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddBytes(pMe, Bytes);
 }
 
 static inline void
+QCBOREncode_AddBytesToMap(QCBOREncodeContext *pMe, const char *szLabel, UsefulBufC Bytes)
+{
+   QCBOREncode_AddBytesToMapSZ(pMe, szLabel, Bytes);
+}
+
+static inline void
 QCBOREncode_AddBytesToMapN(QCBOREncodeContext *pMe,
                            const int64_t       nLabel,
                            const UsefulBufC    Bytes)
@@ -4638,12 +4911,20 @@
 }
 
 static inline void
+QCBOREncode_AddSimpleToMapSZ(QCBOREncodeContext *pMe,
+                             const char         *szLabel,
+                             const uint8_t       uSimple)
+{
+   QCBOREncode_AddSZString(pMe, szLabel);
+   QCBOREncode_AddSimple(pMe, uSimple);
+}
+
+static inline void
 QCBOREncode_AddSimpleToMap(QCBOREncodeContext *pMe,
                            const char         *szLabel,
                            const uint8_t       uSimple)
 {
-   QCBOREncode_AddSZString(pMe, szLabel);
-   QCBOREncode_AddSimple(pMe, uSimple);
+   QCBOREncode_AddSimpleToMapSZ(pMe, szLabel, uSimple);
 }
 
 static inline void
@@ -4667,13 +4948,19 @@
 }
 
 static inline void
-QCBOREncode_AddBoolToMap(QCBOREncodeContext *pMe, const char *szLabel, const bool b)
+QCBOREncode_AddBoolToMapSZ(QCBOREncodeContext *pMe, const char *szLabel, const bool b)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddBool(pMe, b);
 }
 
 static inline void
+QCBOREncode_AddBoolToMap(QCBOREncodeContext *pMe, const char *szLabel, bool b)
+{
+   QCBOREncode_AddBoolToMapSZ(pMe, szLabel, b);
+}
+
+static inline void
 QCBOREncode_AddBoolToMapN(QCBOREncodeContext *pMe, const int64_t nLabel, const bool b)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
@@ -4688,13 +4975,19 @@
 }
 
 static inline void
-QCBOREncode_AddNULLToMap(QCBOREncodeContext *pMe, const char *szLabel)
+QCBOREncode_AddNULLToMapSZ(QCBOREncodeContext *pMe, const char *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddNULL(pMe);
 }
 
 static inline void
+QCBOREncode_AddNULLToMap(QCBOREncodeContext *pMe, const char *szLabel)
+{
+   QCBOREncode_AddNULLToMapSZ(pMe, szLabel);
+}
+
+static inline void
 QCBOREncode_AddNULLToMapN(QCBOREncodeContext *pMe, const int64_t nLabel)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
@@ -4709,13 +5002,19 @@
 }
 
 static inline void
-QCBOREncode_AddUndefToMap(QCBOREncodeContext *pMe, const char *szLabel)
+QCBOREncode_AddUndefToMapSZ(QCBOREncodeContext *pMe, const char *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_AddUndef(pMe);
 }
 
 static inline void
+QCBOREncode_AddUndefToMap(QCBOREncodeContext *pCtx, const char *szLabel)
+{
+   QCBOREncode_AddUndefToMapSZ(pCtx, szLabel);
+}
+
+static inline void
 QCBOREncode_AddUndefToMapN(QCBOREncodeContext *pMe, const int64_t nLabel)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
@@ -4730,13 +5029,20 @@
 }
 
 static inline void
-QCBOREncode_OpenArrayInMap(QCBOREncodeContext *pMe, const char *szLabel)
+QCBOREncode_OpenArrayInMapSZ(QCBOREncodeContext *pMe, const char *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_OpenArray(pMe);
 }
 
 static inline void
+QCBOREncode_OpenArrayInMap(QCBOREncodeContext *pMe, const char *szLabel)
+{
+   QCBOREncode_OpenArrayInMapSZ(pMe, szLabel);
+}
+
+
+static inline void
 QCBOREncode_OpenArrayInMapN(QCBOREncodeContext *pMe,  const int64_t nLabel)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
@@ -4758,13 +5064,19 @@
 }
 
 static inline void
-QCBOREncode_OpenMapInMap(QCBOREncodeContext *pMe, const char *szLabel)
+QCBOREncode_OpenMapInMapSZ(QCBOREncodeContext *pMe, const char *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_OpenMap(pMe);
 }
 
 static inline void
+QCBOREncode_OpenMapInMap(QCBOREncodeContext *pMe, const char *szLabel)
+{
+   QCBOREncode_OpenMapInMapSZ(pMe, szLabel);
+}
+
+static inline void
 QCBOREncode_OpenMapInMapN(QCBOREncodeContext *pMe, const int64_t nLabel)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
@@ -4784,7 +5096,7 @@
 }
 
 static inline void
-QCBOREncode_OpenArrayIndefiniteLengthInMap(QCBOREncodeContext *pMe,
+QCBOREncode_OpenArrayIndefiniteLengthInMapSZ(QCBOREncodeContext *pMe,
                                            const char         *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
@@ -4792,6 +5104,13 @@
 }
 
 static inline void
+QCBOREncode_OpenArrayIndefiniteLengthInMap(QCBOREncodeContext *pMe,
+                                           const char         *szLabel)
+{
+   QCBOREncode_OpenArrayIndefiniteLengthInMapSZ(pMe, szLabel);
+}
+
+static inline void
 QCBOREncode_OpenArrayIndefiniteLengthInMapN(QCBOREncodeContext *pMe,
                                             const int64_t       nLabel)
 {
@@ -4813,14 +5132,21 @@
 }
 
 static inline void
-QCBOREncode_OpenMapIndefiniteLengthInMap(QCBOREncodeContext *pMe,
-                                         const char         *szLabel)
+QCBOREncode_OpenMapIndefiniteLengthInMapSZ(QCBOREncodeContext *pMe,
+                                           const char         *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_OpenMapIndefiniteLength(pMe);
 }
 
 static inline void
+QCBOREncode_OpenMapIndefiniteLengthInMap(QCBOREncodeContext *pMe,
+                                         const char         *szLabel)
+{
+   QCBOREncode_OpenMapIndefiniteLengthInMapSZ(pMe, szLabel);
+}
+
+static inline void
 QCBOREncode_OpenMapIndefiniteLengthInMapN(QCBOREncodeContext *pMe,
                                           const int64_t       nLabel)
 {
@@ -4842,13 +5168,19 @@
 }
 
 static inline void
-QCBOREncode_BstrWrapInMap(QCBOREncodeContext *pMe, const char *szLabel)
+QCBOREncode_BstrWrapInMapSZ(QCBOREncodeContext *pMe, const char *szLabel)
 {
    QCBOREncode_AddSZString(pMe, szLabel);
    QCBOREncode_BstrWrap(pMe);
 }
 
 static inline void
+QCBOREncode_BstrWrapInMap(QCBOREncodeContext *pMe, const char *szLabel)
+{
+   QCBOREncode_BstrWrapInMapSZ(pMe, szLabel);
+}
+
+static inline void
 QCBOREncode_BstrWrapInMapN(QCBOREncodeContext *pMe, const int64_t nLabel)
 {
    QCBOREncode_AddInt64(pMe, nLabel);
@@ -4864,7 +5196,7 @@
 
 
 static inline void
-QCBOREncode_AddEncodedToMap(QCBOREncodeContext *pMe,
+QCBOREncode_AddEncodedToMapSZ(QCBOREncodeContext *pMe,
                             const char         *szLabel,
                             const UsefulBufC    Encoded)
 {
@@ -4873,6 +5205,12 @@
 }
 
 static inline void
+QCBOREncode_AddEncodedToMap(QCBOREncodeContext *pMe, const char *szLabel, UsefulBufC Encoded)
+{
+   QCBOREncode_AddEncodedToMapSZ(pMe, szLabel, Encoded);
+}
+
+static inline void
 QCBOREncode_AddEncodedToMapN(QCBOREncodeContext *pMe,
                              const int64_t       nLabel,
                              const UsefulBufC    Encoded)
@@ -4923,9 +5261,9 @@
    return UsefulOutBuf_GetEndPosition(&(pMe->OutBuf));
 }
 
-/* ========================================================================
-     END OF PRIVATE INLINE IMPLEMENTATION
-   ======================================================================== */
+/* ======================================================================== *
+ *    END OF PRIVATE INLINE IMPLEMENTATION                                  *
+ * ======================================================================== */
 
 #ifdef __cplusplus
 }
diff --git a/inc/qcbor/qcbor_spiffy_decode.h b/inc/qcbor/qcbor_spiffy_decode.h
index 6c9963a..e690f31 100644
--- a/inc/qcbor/qcbor_spiffy_decode.h
+++ b/inc/qcbor/qcbor_spiffy_decode.h
@@ -1603,7 +1603,7 @@
  *
  * See @ref Tag-Usage for discussion on tag requirements.
  *
- * See also @ref CBOR_TAG_DATE_EPOCH, QCBOREncode_AddDateEpoch() and
+ * See also @ref CBOR_TAG_DATE_EPOCH, QCBOREncode_AddTDateEpoch() and
  * @ref QCBOR_TYPE_DATE_EPOCH.
 */
 void
@@ -2036,7 +2036,7 @@
  *
  * See @ref Tag-Usage for discussion on tag requirements.
  *
- * See also @ref CBOR_TAG_URI, QCBOREncode_AddURI() and
+ * See also @ref CBOR_TAG_URI, QCBOREncode_AddTURI() and
  *  @ref QCBOR_TYPE_URI.
  */
 static void
@@ -2111,7 +2111,7 @@
  *
  * Note that this does not actually remove the base64url encoding.
  *
- * See also @ref CBOR_TAG_B64URL, QCBOREncode_AddB64URLText() and
+ * See also @ref CBOR_TAG_B64URL, QCBOREncode_AddTB64URLText() and
  * @ref QCBOR_TYPE_BASE64URL.
  */
 static void
@@ -2146,7 +2146,7 @@
  *
  * See @ref Tag-Usage for discussion on tag requirements.
  *
- * See also @ref CBOR_TAG_REGEX, QCBOREncode_AddRegex() and
+ * See also @ref CBOR_TAG_REGEX, QCBOREncode_AddTRegex() and
  * @ref QCBOR_TYPE_REGEX.
  */
 static void
@@ -2234,7 +2234,7 @@
  *
  * See @ref Tag-Usage for discussion on tag requirements.
  *
- * See also @ref CBOR_TAG_BIN_UUID, QCBOREncode_AddBinaryUUID() and
+ * See also @ref CBOR_TAG_BIN_UUID, QCBOREncode_AddTBinaryUUID() and
  * @ref QCBOR_TYPE_UUID.
  */
 static void
@@ -2392,6 +2392,18 @@
                                       int64_t            *pnExponent);
 
 /* Use QCBORDecode_GetTDecimalFractionBigMantissaRaw() instead */
+
+/*
+ TODO: integrate this comment better
+* For QCBOR before v1.5, this function had a bug where
+* by the negative mantissa sometimes had the offset of
+* one applied, making this function somewhat usless for
+* negative mantissas. Specifically if the to-be-decode CBOR
+* was a type 1 integer the offset was applied and when it
+* was a tag 3, the offset was not applied. It is possible
+* that a tag 3 could contain a value in the range of a type 1
+* integer. @ref QCBORExpAndMantissa is
+* correct and can be used instead of this. */
 static void
 QCBORDecode_GetDecimalFractionBig(QCBORDecodeContext *pCtx,
                                   uint8_t             uTagRequirement,
@@ -2472,9 +2484,13 @@
                                   bool               *pbMantissaIsNegative,
                                   int64_t            *pnExponent);
 #endif /* ! QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA */
-/* ===========================================================================
-   BEGINNING OF PRIVATE INLINE IMPLEMENTATION
-   ========================================================================== */
+
+
+
+
+/* ========================================================================= *
+ *    BEGINNING OF PRIVATE INLINE IMPLEMENTATION                             *
+ * ========================================================================= */
 
 
 /* Semi-private funcion used by public inline functions. See qcbor_decode.c */
@@ -3394,6 +3410,9 @@
                                               pUUID);
 }
 
+/* ======================================================================== *
+ *    END OF PRIVATE INLINE IMPLEMENTATION                                  *
+ * ======================================================================== */
 
 static inline void
 QCBORDecode_GetBignum(QCBORDecodeContext *pMe,
diff --git a/src/qcbor_decode.c b/src/qcbor_decode.c
index d08298b..2992ce1 100644
--- a/src/qcbor_decode.c
+++ b/src/qcbor_decode.c
@@ -3293,7 +3293,7 @@
  *
  * @retval Also errors returned by QCBORDecode_GetNext().
  *
- * On input, \c pItemArray contains a list of labels and data types of
+ * On input, @c pItemArray contains a list of labels and data types of
  * items to be found.
  *
  * On output, the fully retrieved items are filled in with values and
@@ -3717,10 +3717,10 @@
  * @param[out] pItem         The item for the array/map.
  * @param[out] pEncodedCBOR  Pointer and length of the encoded map or array.
  *
- * The next item to be decoded must be a map or array as specified by \c uType.
+ * The next item to be decoded must be a map or array as specified by @c uType.
  *
- * \c pItem will be filled in with the label and tags of the array or map
- * in addition to \c pEncodedCBOR giving the pointer and length of the
+ * @c pItem will be filled in with the label and tags of the array or map
+ * in addition to @c pEncodedCBOR giving the pointer and length of the
  * encoded CBOR.
  *
  * When this is complete, the traversal cursor is at the end of the array or
@@ -3820,7 +3820,7 @@
  * @param[out] pItem         The item for the array/map.
  * @param[out] pEncodedCBOR  Pointer and length of the encoded map or array.
  *
- * The next item to be decoded must be a map or array as specified by \c uType.
+ * The next item to be decoded must be a map or array as specified by @c uType.
  *
  * When this is complete, the traversal cursor is unchanged.
  */void
@@ -5409,7 +5409,7 @@
  * unsigned integer.
  *
  * There are many inputs for which the result will not fit in the
- * 64-bit integer and \ref QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW will
+ * 64-bit integer and @ref QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW will
  * be returned.
  */
 static QCBORError
@@ -5457,7 +5457,7 @@
  * output is a 64-bit unsigned integer.
  *
  * There are many inputs for which the result will not fit in the
- * 64-bit integer and \ref QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW will
+ * 64-bit integer and @ref QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW will
  * be returned.
  */
 static QCBORError
@@ -5504,7 +5504,7 @@
  *
  * @returns Error code
  *
- * \c pfExp performs exponentiation on and unsigned mantissa and
+ * @c pfExp performs exponentiation on and unsigned mantissa and
  * produces an unsigned result. This converts the mantissa from signed
  * and converts the result to signed. The exponentiation function is
  * either for base 2 or base 10 (and could be other if needed).
@@ -5592,7 +5592,7 @@
  *
  * @returns Error code
  *
- * \c pfExp performs exponentiation on and unsigned mantissa and
+ * @c pfExp performs exponentiation on and unsigned mantissa and
  * produces an unsigned result. This errors out if the mantissa
  * is negative because the output is unsigned.
  */
@@ -5624,7 +5624,7 @@
  *
  * @returns Error code
  *
- * \c pfExp performs exponentiation on and unsigned mantissa and
+ * @c pfExp performs exponentiation on and unsigned mantissa and
  * produces an unsigned result so this is just a wrapper that does
  * nothing (and is likely inlined).
  */
@@ -6816,7 +6816,7 @@
             return QCBOR_ERR_UNEXPECTED_TYPE;
          }
          break;
-#endif /* ndef QCBOR_DISABLE_EXP_AND_MANTISSA */
+#endif /* ! QCBOR_DISABLE_EXP_AND_MANTISSA */
 
       case QCBOR_TYPE_POSBIGNUM:
          if(uConvertTypes & QCBOR_CONVERT_TYPE_BIG_NUM) {
@@ -6845,32 +6845,33 @@
          break;
 
       case QCBOR_TYPE_DECIMAL_FRACTION_NEG_BIGNUM:
-        if(uConvertTypes & QCBOR_CONVERT_TYPE_DECIMAL_FRACTION) {
-         double dMantissa = -QCBOR_Private_ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
-         *pdValue = dMantissa * pow(10, (double)pItem->val.expAndMantissa.nExponent);
+         if(uConvertTypes & QCBOR_CONVERT_TYPE_DECIMAL_FRACTION) {
+            /* Must subtract 1 for CBOR negative integer offset */
+            double dMantissa = -1-QCBOR_Private_ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
+            *pdValue = dMantissa * pow(10, (double)pItem->val.expAndMantissa.nExponent);
          } else {
             return QCBOR_ERR_UNEXPECTED_TYPE;
          }
          break;
 
       case QCBOR_TYPE_BIGFLOAT_POS_BIGNUM:
-        if(uConvertTypes & QCBOR_CONVERT_TYPE_BIGFLOAT) {
-         double dMantissa = QCBOR_Private_ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
-         *pdValue = dMantissa * exp2((double)pItem->val.expAndMantissa.nExponent);
+         if(uConvertTypes & QCBOR_CONVERT_TYPE_BIGFLOAT) {
+            double dMantissa = QCBOR_Private_ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
+            *pdValue = dMantissa * exp2((double)pItem->val.expAndMantissa.nExponent);
          } else {
             return QCBOR_ERR_UNEXPECTED_TYPE;
          }
          break;
 
       case QCBOR_TYPE_BIGFLOAT_NEG_BIGNUM:
-        if(uConvertTypes & QCBOR_CONVERT_TYPE_BIGFLOAT) {
-         double dMantissa = -1-QCBOR_Private_ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
-         *pdValue = dMantissa * exp2((double)pItem->val.expAndMantissa.nExponent);
+         if(uConvertTypes & QCBOR_CONVERT_TYPE_BIGFLOAT) {
+            double dMantissa = -1-QCBOR_Private_ConvertBigNumToDouble(pItem->val.expAndMantissa.Mantissa.bigNum);
+            *pdValue = dMantissa * exp2((double)pItem->val.expAndMantissa.nExponent);
          } else {
             return QCBOR_ERR_UNEXPECTED_TYPE;
          }
          break;
-#endif /* ndef QCBOR_DISABLE_EXP_AND_MANTISSA */
+#endif /* ! QCBOR_DISABLE_EXP_AND_MANTISSA */
 
       default:
          return QCBOR_ERR_UNEXPECTED_TYPE;
@@ -7171,8 +7172,8 @@
                                           bool                *pbIsNegative,
                                           int64_t             *pnExponent)
 {
-   QCBORError    uErr;
-   uint64_t      uMantissa;
+   QCBORError     uErr;
+   uint64_t       uMantissa;
    const uint8_t *qTypes;
 
    if(pMe->uLastError) {
diff --git a/src/qcbor_encode.c b/src/qcbor_encode.c
index 49dfa2a..47208a8 100644
--- a/src/qcbor_encode.c
+++ b/src/qcbor_encode.c
@@ -1032,8 +1032,8 @@
  * To output a mantissa that is between INT64_MAX and UINT64_MAX from 0,
  * it must be as a big number.
  *
- * Typically, QCBOREncode_AddDecimalFraction(), QCBOREncode_AddBigFloat(),
- * QCBOREncode_AddDecimalFractionBigNum() or QCBOREncode_AddBigFloatBigNum()
+ * Typically, QCBOREncode_AddTDecimalFraction(), QCBOREncode_AddTBigFloat(),
+ * QCBOREncode_AddTDecimalFractionBigNum() or QCBOREncode_AddTBigFloatBigNum()
  * is called instead of this.
  */
 void
@@ -1695,7 +1695,7 @@
       return;
    }
    /* QCBOREncode_CancelBstrWrap() can't correctly undo
-    * QCBOREncode_BstrWrapInMap() or QCBOREncode_BstrWrapInMapN(). It
+    * QCBOREncode_BstrWrapInMapSZ() or QCBOREncode_BstrWrapInMapN(). It
     * can't undo the labels they add. It also doesn't catch the error
     * of using it this way.  QCBOREncode_CancelBstrWrap() is used
     * infrequently and the the result is incorrect CBOR, not a
diff --git a/test/qcbor_decode_tests.c b/test/qcbor_decode_tests.c
index adcf9b7..e4f0f9e 100644
--- a/test/qcbor_decode_tests.c
+++ b/test/qcbor_decode_tests.c
@@ -4146,6 +4146,14 @@
 };
 
 
+static const uint8_t spTaggedString[] = {
+   0xd8, 0xf0, 0x61, 0x40,
+};
+
+static const uint8_t spTaggedInt[] = {
+   0xd8, 0xf4, 0x01,
+};
+
 static int32_t CheckCSRMaps(QCBORDecodeContext *pDC);
 
 int32_t TagNumberDecodeTest(void)
@@ -4153,6 +4161,9 @@
    QCBORDecodeContext DCtx;
    QCBORItem          Item;
    QCBORError         uError;
+   UsefulBufC         UBC;
+   int64_t            nInt;
+
 
    QCBORDecode_Init(&DCtx,
                      UsefulBuf_FROM_BYTE_ARRAY_LITERAL(spTagInput),
@@ -4592,7 +4603,6 @@
    if(QCBORDecode_GetNthTagOfLast(&DCtx, 3) != CBOR_TAG_INVALID64) {
       return 234;
    }
-   int64_t nInt;
    QCBORDecode_GetInt64(&DCtx, &nInt);
    if(QCBORDecode_GetNthTagOfLast(&DCtx, 0) != 7) {
       return 240;
@@ -4608,6 +4618,8 @@
    }
 #endif /* ! QCBOR_DISABLE_NON_INTEGER_LABELS */
 
+
+
    QCBORDecode_Init(&DCtx,
                      UsefulBuf_FROM_BYTE_ARRAY_LITERAL(spSpiffyTagInput),
                      QCBOR_DECODE_MODE_NORMAL);
@@ -4679,6 +4691,44 @@
       return 305;
    }
 
+   QCBORDecode_Init(&DCtx,
+                    UsefulBuf_FROM_BYTE_ARRAY_LITERAL(spTaggedString),
+                    QCBOR_DECODE_MODE_NORMAL);
+   QCBORDecode_CompatibilityV1(&DCtx);
+
+   /* See that QCBORDecode_GetTextString() ignores tags */
+   QCBORDecode_GetTextString(&DCtx, &UBC);
+   if(QCBORDecode_GetError(&DCtx) != QCBOR_SUCCESS) {
+      return 400;
+   }
+   if(UBC.len != 1) {
+      return 401;
+   }
+
+   uTagNumber = QCBORDecode_GetNthTagOfLast(&DCtx, 0);
+   if(uTagNumber != 240) {
+      return 404;
+   }
+
+
+   QCBORDecode_Init(&DCtx,
+                    UsefulBuf_FROM_BYTE_ARRAY_LITERAL(spTaggedInt),
+                    QCBOR_DECODE_MODE_NORMAL);
+   QCBORDecode_CompatibilityV1(&DCtx);
+   /* See that QCBORDecode_GetInt64() ignores tags */
+   QCBORDecode_GetInt64(&DCtx, &nInt);
+   if(QCBORDecode_GetError(&DCtx) != QCBOR_SUCCESS) {
+      return 410;
+   }
+   if(nInt != 1) {
+      return 411;
+   }
+
+   uTagNumber = QCBORDecode_GetNthTagOfLast(&DCtx, 0);
+   if(uTagNumber != 244) {
+      return 414;
+   }
+
    return 0;
 }
 #endif /* ! QCBOR_DISABLE_TAGS */
@@ -5982,6 +6032,8 @@
    int64_t     nExponentGBFB;
    UsefulBufC  MantissaGBFB;
    bool        IsNegativeGBFB;
+
+   // TODO: add tests for Raw
 };
 
 
@@ -6004,7 +6056,7 @@
       -1,
       3,
 
-      QCBOR_SUCCESS, /* for GetDecimalFractionBig */
+      QCBOR_SUCCESS, /* for GetTDecimalFractionBigMantissa */
       -1,
       {(const uint8_t []){0x03}, 1},
       false,
@@ -6013,7 +6065,7 @@
       -1,
       3,
 
-      QCBOR_SUCCESS, /* for GetBigFloatBig */
+      QCBOR_SUCCESS, /* for GetTBigFloatBigMantissa */
       -1,
       {(const uint8_t []){0x03}, 1},
       false
@@ -6035,7 +6087,7 @@
       0,
       0,
 
-      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetDecimalFractionBig */
+      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetTDecimalFractionBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false,
@@ -6044,7 +6096,7 @@
       0,
       0,
 
-      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetBigFloatBig */
+      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetTBigFloatBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false
@@ -6067,7 +6119,7 @@
       -1,
       3,
 
-      QCBOR_SUCCESS, /* for GetDecimalFractionBig */
+      QCBOR_SUCCESS, /* for GetTDecimalFractionBigMantissa */
       -1,
       {(const uint8_t []){0x03}, 1},
       false,
@@ -6076,7 +6128,7 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetBigFloatBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTBigFloatBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false
@@ -6098,16 +6150,16 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetDecimalFractionBig */ // TODO: think about error code
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTDecimalFractionBigMantissa */ // TODO: think about error code
       0,
-      {(const uint8_t []){0x03}, 1},
+      {(const uint8_t []){0x02}, 1},
       false,
 
       QCBOR_SUCCESS, /* for GetBigFloat */
       300,
       100,
 
-      QCBOR_SUCCESS, /* for GetBigFloatBig */
+      QCBOR_SUCCESS, /* for GetTBigFloatBigMantissa */
       300,
       {(const uint8_t []){0x64}, 1},
       false
@@ -6126,7 +6178,7 @@
       0UL,
       {(const uint8_t []){0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10}, 10},
 
-      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW, /* for GetDecimalFraction */
+      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW, /* for GetTDecimalFractionBigMantissa */
       0,
       0,
 
@@ -6139,7 +6191,7 @@
       0,
       0,
 
-      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetBigFloatBig */
+      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetTBigFloatBigMantissa */
       0,
       {(const uint8_t []){0x00}, 0},
       false
@@ -6162,7 +6214,7 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetDecimalFractionBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTDecimalFractionBigMantissa */
       0,
       {(const uint8_t []){0x00}, 0},
       false,
@@ -6171,7 +6223,7 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetBigFloatBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTBigFloatBigMantissa */
       0,
       {(const uint8_t []){0x00}, 0},
       false
@@ -6194,7 +6246,7 @@
       0,
       0,
 
-      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetDecimalFractionBig */
+      QCBOR_ERR_UNEXPECTED_TYPE, /* for GetTDecimalFractionBigMantissa */
       -20,
       {(const uint8_t []){0x00}, 1},
       false,
@@ -6203,7 +6255,7 @@
       -20,
       4294967295,
 
-      QCBOR_SUCCESS, /* for GetBigFloatBig */
+      QCBOR_SUCCESS, /* for GetTBigFloatBigMantissa */
       -20,
       {(const uint8_t []){0xff, 0xff, 0xff, 0xff}, 4},
       false
@@ -6226,12 +6278,12 @@
       0,
       0,
 
-      QCBOR_SUCCESS, /* for GetDecimalFractionBig */
+      QCBOR_SUCCESS, /* for GetTDecimalFractionBigMantissa */
       -20,
       {(const uint8_t []){0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10}, 10},
       false,
 
-      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW, /* for GetBigFloat */
+      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW, /* for GetTBigFloatBigMantissa */
       0,
       0,
 
@@ -6267,7 +6319,7 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetBigFloatBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTBigFloatBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false
@@ -6290,12 +6342,12 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetDecimalFractionBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTDecimalFractionBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false,
 
-      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW, /* for GetBigFloat */
+      QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW, /* for GetTBigFloatBigMantissa */
       0,
       0,
 
@@ -6322,7 +6374,7 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetDecimalFractionBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTDecimalFractionBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false,
@@ -6331,7 +6383,7 @@
       0,
       0,
 
-      QCBOR_SUCCESS, /* for GetBigFloatBig */
+      QCBOR_SUCCESS, /* for GetTBigFloatBigMantissa */
       9223372036854775807,
       {(const uint8_t []){0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 9},
       true
@@ -6354,7 +6406,7 @@
       0,
       0,
 
-      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetDecimalFractionBig */
+      QCBOR_ERR_BAD_EXP_AND_MANTISSA, /* for GetTDecimalFractionBigMantissa */
       0,
       {(const uint8_t []){0x00}, 1},
       false,
@@ -6363,7 +6415,7 @@
       0,
       0,
 
-      QCBOR_SUCCESS, /* for GetBigFloatBig */
+      QCBOR_SUCCESS, /* for GetTBigFloatBigMantissa */
       9223372036854775807,
       {(const uint8_t []){0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, 8},
       false
@@ -6386,7 +6438,7 @@
    for(uIndex = 0; uIndex < C_ARRAY_COUNT(pEaMTests, struct EaMTest); uIndex++) {
       const struct EaMTest *pT = &pEaMTests[uIndex];
 
-      if(uIndex + 1 == 11) {
+      if(uIndex + 1 == 4) {
          nExponent = 99; // just to set a break point
       }
 
@@ -6598,8 +6650,8 @@
    QCBOREncode_Init(&EC, UsefulBuf_FROM_BYTE_ARRAY(pBuf));
    QCBOREncode_OpenArray(&EC);
    QCBOREncode_AddDecimalFraction(&EC, 999, 1000); // 999 * (10 ^ 1000)
-   QCBOREncode_AddBigFloat(&EC, 100, INT32_MIN);
-   QCBOREncode_AddDecimalFractionBigNum(&EC, BN, false, INT32_MAX);
+   QCBOREncode_AddTBigFloat(&EC, QCBOR_ENCODE_AS_TAG, 100, INT32_MIN);
+   QCBOREncode_AddTDecimalFractionBigNum(&EC, QCBOR_ENCODE_AS_TAG, BN, false, INT32_MAX);
    QCBOREncode_CloseArray(&EC);
    QCBOREncode_Finish(&EC, &Encoded);
 
@@ -7871,6 +7923,26 @@
       FLOAT_ERR_CODE_NO_FLOAT_HW(EXP_AND_MANTISSA_ERROR(QCBOR_SUCCESS))
    },
    {
+      "Decimal fraction -3/10",
+      {(uint8_t[]){0xC4, 0x82, 0x20, 0x22}, 4},
+      0,
+      EXP_AND_MANTISSA_ERROR(QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW),
+      0,
+      EXP_AND_MANTISSA_ERROR(QCBOR_ERR_NUMBER_SIGN_CONVERSION),
+      -0.30000000000000004,
+      FLOAT_ERR_CODE_NO_FLOAT_HW(EXP_AND_MANTISSA_ERROR(QCBOR_SUCCESS))
+   },
+   {
+      "Decimal fraction -3/10, neg bignum mantissa",
+      {(uint8_t[]){0xC4, 0x82, 0x20, 0xc3, 0x41, 0x02}, 6},
+      0,
+      EXP_AND_MANTISSA_ERROR(QCBOR_ERR_CONVERSION_UNDER_OVER_FLOW),
+      0,
+      EXP_AND_MANTISSA_ERROR(QCBOR_ERR_NUMBER_SIGN_CONVERSION),
+      -0.30000000000000004,
+      FLOAT_ERR_CODE_NO_FLOAT_HW(EXP_AND_MANTISSA_ERROR(QCBOR_SUCCESS))
+   },
+   {
       "extreme pos bignum",
       {(uint8_t[]){0xc2, 0x59, 0x01, 0x90,
          // 50 rows of 8 is 400 digits.
@@ -8116,7 +8188,6 @@
       INFINITY,
       FLOAT_ERR_CODE_NO_FLOAT_HW(QCBOR_SUCCESS)
    },
-
 };
 
 
@@ -8637,6 +8708,9 @@
 
    QCBOREncode_Init(&EC, OutputBuffer);
 
+#ifndef QCBOR_DISABLE_TAGS
+   QCBOREncode_AddTag(&EC, CBOR_TAG_CBOR);
+#endif /* ! QCBOR_DISABLE_TAGS */
    QCBOREncode_BstrWrap(&EC);
      QCBOREncode_OpenMap(&EC);
        QCBOREncode_AddInt64ToMapN(&EC, 100, 1);
@@ -8682,8 +8756,11 @@
 
    int64_t n1, n2, n3, n4, n5, n6, n7, n8;
 
-
+#ifndef QCBOR_DISABLE_TAGS
+   QCBORDecode_EnterBstrWrapped(&DC, QCBOR_TAG_REQUIREMENT_TAG, NULL);
+#else
    QCBORDecode_EnterBstrWrapped(&DC, QCBOR_TAG_REQUIREMENT_NOT_A_TAG, NULL);
+#endif /* ! QCBOR_DISABLE_TAGS */
      QCBORDecode_EnterMap(&DC, NULL);
        QCBORDecode_GetInt64InMapN(&DC, 100, &n1);
        QCBORDecode_GetInt64InMapN(&DC, 200, &n2);
diff --git a/test/qcbor_encode_tests.c b/test/qcbor_encode_tests.c
index e724767..67bf459 100644
--- a/test/qcbor_encode_tests.c
+++ b/test/qcbor_encode_tests.c
@@ -530,6 +530,9 @@
 
 static void AddAll(QCBOREncodeContext *pECtx)
 {
+   /* This calls a mix of deprecated and non-deprecated to test both.
+    * Sometimes only deprecated because the deprecated calls the
+    * non-deprecated */
    QCBOREncode_OpenArray(pECtx);
 
    /* Some ints that are tagged and have strings preceeding them
@@ -557,7 +560,7 @@
    /* Epoch date with labels */
    QCBOREncode_OpenMap(pECtx);
    QCBOREncode_AddDateEpochToMap(pECtx, "LongLiveDenisRitchie", 1400000000);
-   QCBOREncode_AddDateEpochToMap(pECtx, "time()", 1477263730);
+   QCBOREncode_AddTDateEpochToMapSZ(pECtx, "time()", QCBOR_ENCODE_AS_TAG, 1477263730);
    QCBOREncode_AddDateEpochToMapN(pECtx, -1969, 1477263222);
    QCBOREncode_CloseMap(pECtx);
 
@@ -570,7 +573,7 @@
    QCBOREncode_AddTagNumber(pECtx, 100000);
    QCBOREncode_AddBytes(pECtx, ((UsefulBufC) {(uint8_t []){0x00}, 1}));
    QCBOREncode_AddBytesToMap(pECtx, "empty", NULLUsefulBufC); // Empty string
-   QCBOREncode_AddBytesToMap(pECtx, "blabel", ((UsefulBufC) {(uint8_t []){0x01, 0x02, 0x03}, 3}));
+   QCBOREncode_AddBytesToMapSZ(pECtx, "blabel", ((UsefulBufC) {(uint8_t []){0x01, 0x02, 0x03}, 3}));
    QCBOREncode_AddBytesToMapN(pECtx, 0, ((UsefulBufC){(uint8_t []){0x04, 0x02, 0x03, 0xfe}, 4}));
    QCBOREncode_CloseMap(pECtx);
 
@@ -589,7 +592,7 @@
    /* text blobs in maps */
    QCBOREncode_OpenMap(pECtx);
    QCBOREncode_AddTextToMap(pECtx, "#####", UsefulBuf_FROM_SZ_LITERAL("foo bar foo foo"));
-   QCBOREncode_AddTextToMap(pECtx, "____", UsefulBuf_FROM_SZ_LITERAL("foo bar"));
+   QCBOREncode_AddTextToMapSZ(pECtx, "____", UsefulBuf_FROM_SZ_LITERAL("foo bar"));
    QCBOREncode_AddSZString(pECtx, "()()()");
    QCBOREncode_AddTag(pECtx, 1000);
    QCBOREncode_AddSZString(pECtx, "rab rab oof");
@@ -685,7 +688,7 @@
    QCBOREncode_AddBool(pECtx, true);
    QCBOREncode_AddBool(pECtx, false);
    QCBOREncode_OpenMap(pECtx);
-   QCBOREncode_AddBoolToMap(pECtx, "George is the man", true);
+   QCBOREncode_AddBoolToMapSZ(pECtx, "George is the man", true);
    QCBOREncode_AddBoolToMapN(pECtx, 010101, true);
    QCBOREncode_CloseMap(pECtx);
 
@@ -1110,7 +1113,7 @@
 
    QCBOREncode_OpenMap(&ECtx);
 
-   QCBOREncode_AddUndefToMap(&ECtx, "UNDef");
+   QCBOREncode_AddUndefToMapSZ(&ECtx, "UNDef");
    QCBOREncode_CloseMap(&ECtx);
 
    QCBOREncode_CloseArray(&ECtx);
@@ -1372,32 +1375,32 @@
    QCBOREncode_OpenMap(&ECtx);
 
    // add array with 31 items
-   QCBOREncode_OpenArrayInMap(&ECtx, "arr");
+   QCBOREncode_OpenArrayInMapSZ(&ECtx, "arr");
    for (size_t ix = 0; ix < 31; ix++) {
       QCBOREncode_AddInt64(&ECtx, (int64_t)ix);
    }
    QCBOREncode_CloseArray(&ECtx);
 
    // add map with 31 items
-   QCBOREncode_OpenMapInMap(&ECtx, "map");
+   QCBOREncode_OpenMapInMapSZ(&ECtx, "map");
    for (int ix = 0; ix < 31; ix++) {
       // make sure we have unique keys in the map (a-z then follow by A-Z)
       int c = 'a';
       if (ix < 26) c = c + ix;
       else c = 'A' + (ix - 26);
       char buffer[2] = { (char)c, 0 };
-      QCBOREncode_AddInt64ToMap(&ECtx, buffer, ix);
+      QCBOREncode_AddInt64ToMapSZ(&ECtx, buffer, ix);
    }
    QCBOREncode_CloseMap(&ECtx);
 
    // add -31 and +31
-   QCBOREncode_AddInt64ToMap(&ECtx, "min31", -31);
-   QCBOREncode_AddInt64ToMap(&ECtx, "plus31", 31);
+   QCBOREncode_AddInt64ToMapSZ(&ECtx, "min31", -31);
+   QCBOREncode_AddInt64ToMapSZ(&ECtx, "plus31", 31);
 
    // add string with length 31
    const char *str = "testtesttesttesttesttestqcbor11";
    UsefulBufC str_b = { str, 31 };
-   QCBOREncode_AddTextToMap(&ECtx, "str", str_b);
+   QCBOREncode_AddTextToMapSZ(&ECtx, "str", str_b);
 
    QCBOREncode_CloseMap(&ECtx);
 
@@ -1476,9 +1479,10 @@
 
    QCBOREncode_OpenMap(&ECtx);
 
-   QCBOREncode_AddDateStringToMap(&ECtx,
-                                  "Sample Date from RFC 3339",
-                                  "1985-04-12T23:20:50.52Z");
+   QCBOREncode_AddTDateStringToMapSZ(&ECtx,
+                                     "Sample Date from RFC 3339",
+                                     QCBOR_ENCODE_AS_TAG,
+                                     "1985-04-12T23:20:50.52Z");
    QCBOREncode_AddDateEpochToMap(&ECtx, "SD", 999);
    QCBOREncode_AddTDaysStringToMapSZ(&ECtx,
                                      "Sample Date from RFC 8943",
@@ -1718,16 +1722,16 @@
    do {
       QCBOREncode_Init(&ECtx, (UsefulBuf){*pEncoded, *pEncodedLen});
       QCBOREncode_OpenMap(&ECtx);
-      QCBOREncode_AddInt64ToMap(&ECtx, "first integer", 42);
-      QCBOREncode_OpenArrayInMap(&ECtx, "an array of two strings");
+      QCBOREncode_AddInt64ToMapSZ(&ECtx, "first integer", 42);
+      QCBOREncode_OpenArrayInMapSZ(&ECtx, "an array of two strings");
       QCBOREncode_AddText(&ECtx, ((UsefulBufC) {"string1", 7}));
       QCBOREncode_AddText(&ECtx, ((UsefulBufC) {"string2", 7}));
       QCBOREncode_CloseArray(&ECtx);
-      QCBOREncode_OpenMapInMap(&ECtx, "map in a map");
+      QCBOREncode_OpenMapInMapSZ(&ECtx, "map in a map");
       QCBOREncode_AddBytesToMap(&ECtx,"bytes 1", ((UsefulBufC) { "xxxx", 4}));
-      QCBOREncode_AddBytesToMap(&ECtx, "bytes 2",((UsefulBufC) { "yyyy", 4}));
-      QCBOREncode_AddInt64ToMap(&ECtx, "another int", 98);
-      QCBOREncode_AddTextToMap(&ECtx, "text 2", ((UsefulBufC) {"lies, damn lies and statistics", 30}));
+      QCBOREncode_AddBytesToMapSZ(&ECtx, "bytes 2",((UsefulBufC) { "yyyy", 4}));
+      QCBOREncode_AddInt64ToMapSZ(&ECtx, "another int", 98);
+      QCBOREncode_AddTextToMapSZ(&ECtx, "text 2", ((UsefulBufC) {"lies, damn lies and statistics", 30}));
       QCBOREncode_CloseMap(&ECtx);
       QCBOREncode_CloseMap(&ECtx);
 
@@ -1864,10 +1868,10 @@
 
       // The result: 0 if scan happened and found nothing; 1 if it happened and
       // found something wrong; 2 if it didn't happen
-      QCBOREncode_AddSimpleToMap(&ECtx, "integrity", uRResult);
+      QCBOREncode_AddSimpleToMapSZ(&ECtx, "integrity", uRResult);
 
       // Add the diagnostic code
-      QCBOREncode_AddSZStringToMap(&ECtx, "type", szType);
+      QCBOREncode_AddSZStringToMapSZ(&ECtx, "type", szType);
 
       // Add a time stamp
       if(time) {
@@ -1875,24 +1879,24 @@
       }
 
       // Add the diagnostic code
-      QCBOREncode_AddSZStringToMap(&ECtx, "diag", szAlexString);
+      QCBOREncode_AddSZStringToMapSZ(&ECtx, "diag", szAlexString);
 
       // Open a subordinate map for telemtry data
-      QCBOREncode_OpenMapInMap(&ECtx, "telemetry");
+      QCBOREncode_OpenMapInMapSZ(&ECtx, "telemetry");
 
       { // Brace / indention just to show CBOR encoding nesting
 
          // Add a few fake integers and buffers for now.
-         QCBOREncode_AddInt64ToMap(&ECtx, "Shoe Size", 12);
+         QCBOREncode_AddInt64ToMapSZ(&ECtx, "Shoe Size", 12);
 
          // Add a few fake integers and buffers for now.
-         QCBOREncode_AddInt64ToMap(&ECtx, "IQ", 0xffffffff);
+         QCBOREncode_AddInt64ToMapSZ(&ECtx, "IQ", 0xffffffff);
 
          // Add a few fake integers and buffers for now.
          static const uint8_t pPV[] = {0x66, 0x67, 0x00, 0x56, 0xaa, 0xbb, 0x01, 0x01};
          const UsefulBufC WSPV = {pPV, sizeof(pPV)};
 
-         QCBOREncode_AddBytesToMap(&ECtx, "WhaleSharkPatternVector", WSPV);
+         QCBOREncode_AddBytesToMapSZ(&ECtx, "WhaleSharkPatternVector", WSPV);
       }
    }
 
@@ -3153,12 +3157,12 @@
    QCBOREncode_AddTDecimalFraction(&EC, QCBOR_ENCODE_AS_BORROWED, 4, -1); // 3 * (10 ^ -1)
    QCBOREncode_AddDecimalFractionBigNum(&EC, BigNum , false, -20);
    QCBOREncode_AddTDecimalFractionBigNum(&EC, QCBOR_ENCODE_AS_BORROWED, BigNum , false, 2);
-   QCBOREncode_AddDecimalFractionBigNum(&EC, BigNum, true, INT64_MAX);
+   QCBOREncode_AddTDecimalFractionBigNum(&EC, QCBOR_ENCODE_AS_TAG, BigNum, true, INT64_MAX);
    QCBOREncode_AddBigFloat(&EC, 100, 300);
    QCBOREncode_AddTBigFloat(&EC, QCBOR_ENCODE_AS_BORROWED, 200, 600);
    QCBOREncode_AddBigFloatBigNum(&EC, BigNum, false, -20);
    QCBOREncode_AddTBigFloatBigNum(&EC, QCBOR_ENCODE_AS_BORROWED, BigNum, false, 4);
-   QCBOREncode_AddBigFloatBigNum(&EC, BigNum, true, INT64_MIN);
+   QCBOREncode_AddTBigFloatBigNum(&EC, QCBOR_ENCODE_AS_TAG, BigNum, true, INT64_MIN);
    QCBOREncode_CloseArray(&EC);
 
    if(QCBOREncode_Finish(&EC, &EncodedExponentAndMantissa)) {
@@ -3193,17 +3197,19 @@
                                               false,
                                               INT32_MAX);
 
-   QCBOREncode_AddDecimalFractionBigNumToMapSZ(&EC,
-                                             "decimal fraction bignum negative",
-                                             BigNum,
-                                             true,
-                                             INT64_MAX);
+   QCBOREncode_AddTDecimalFractionBigNumToMapSZ(&EC,
+                                                "decimal fraction bignum negative",
+                                                QCBOR_ENCODE_AS_TAG,
+                                                BigNum,
+                                                true,
+                                                INT64_MAX);
 
-   QCBOREncode_AddDecimalFractionBigNumToMapN(&EC,
-                                              500,
-                                              BigNum,
-                                              true,
-                                              INT64_MAX);
+   QCBOREncode_AddTDecimalFractionBigNumToMapN(&EC,
+                                               500,
+                                               QCBOR_ENCODE_AS_TAG,
+                                               BigNum,
+                                               true,
+                                               INT64_MAX);
 
    QCBOREncode_AddBigFloatToMap(&EC, "big float", 100, 300);
 
@@ -3221,17 +3227,19 @@
                                        false,
                                        -20);
 
-   QCBOREncode_AddBigFloatBigNumToMap(&EC,
-                                      "big float bignum negative",
-                                      BigNum,
-                                      true,
-                                      INT64_MIN);
+   QCBOREncode_AddTBigFloatBigNumToMapSZ(&EC,
+                                         "big float bignum negative",
+                                         QCBOR_ENCODE_AS_TAG,
+                                         BigNum,
+                                         true,
+                                         INT64_MIN);
 
-   QCBOREncode_AddBigFloatBigNumToMapN(&EC,
-                                       800,
-                                       BigNum,
-                                       true,
-                                       INT64_MIN);
+   QCBOREncode_AddTBigFloatBigNumToMapN(&EC,
+                                        800,
+                                        QCBOR_ENCODE_AS_TAG,
+                                        BigNum,
+                                        true,
+                                        INT64_MIN);
 
    QCBOREncode_CloseMap(&EC);