first version of better useful buf
diff --git a/src/qcbor_encode.c b/src/qcbor_encode.c
index 14e13e8..b40db6c 100644
--- a/src/qcbor_encode.c
+++ b/src/qcbor_encode.c
@@ -193,13 +193,13 @@
 /*
  Public function for initialization. See header qcbor.h
  */
-void QCBOREncode_Init(QCBOREncodeContext *me, void *pBuf, size_t uBufLen)
+void QCBOREncode_Init(QCBOREncodeContext *me, UsefulBuf Storage)
 {
    memset(me, 0, sizeof(QCBOREncodeContext));
-   if(uBufLen > UINT32_MAX) {
+   if(Storage.len > UINT32_MAX) {
       me->uError = QCBOR_ERR_BUFFER_TOO_LARGE;
    } else {
-      UsefulOutBuf_Init(&(me->OutBuf), pBuf, uBufLen);
+      UsefulOutBuf_Init(&(me->OutBuf), Storage);
       Nesting_Init(&(me->nesting));
    }
 }
@@ -604,8 +604,9 @@
       me->uError = QCBOR_ERR_BUFFER_TOO_SMALL;
       goto Done;
    }
-   
-   UsefulOutBuf_OutUBuf(&(me->OutBuf), &(pEncodedCBOR->Bytes));
+
+   pEncodedCBOR->Bytes = UsefulOutBuf_OutUBuf(&(me->OutBuf));
+
    pEncodedCBOR->uItems = Nesting_GetCount(&(me->nesting));
    
 Done: