diff --git a/tests/demo_mvp_d3_2.c b/tests/demo_mvp_d3_2.c
index f004909177517c5ac70d47677afa15c713453fd4..012608eefed9433a11a4f15cfa664d7393335a65 100644
--- a/tests/demo_mvp_d3_2.c
+++ b/tests/demo_mvp_d3_2.c
@@ -132,7 +132,7 @@ struct cdo_announcement {
   size_t num_producers;      /** number of producer threads */
   size_t num_consumers;      /** number of consumer threads */
   size_t num_archivers;      /** number of archiver threads */
-  size_t cdo_size;           /** size of each CDO */
+  int64_t cdo_size;           /** size of each CDO */
   size_t num_entries;        /** number of CDOs */
   char *cdo_names[CDO_COUNT_MAX];   /** string names of the CDOs */
 };
@@ -538,10 +538,9 @@ archiver_thread_fun(void *closure)
       s = mstro_cdo_attribute_set(incoming[i],
                                   MSTRO_ATTR_CORE_CDO_RAW_PTR,
                                   incoming_buffers[i]);
-      uint64_t size = announcement->cdo_size;
       s |= mstro_cdo_attribute_set(incoming[i],
-                                   ".maestro.core.cdo.scope.local-size",
-                                   &size);
+                                   MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE,
+                                   &announcement->cdo_size);
 
       if(s!=MSTRO_OK) {
         ERR("Failed to add buffer to CDO %s for archiving\n",
@@ -574,8 +573,6 @@ archiver_thread_fun(void *closure)
 
       /* extract mamba pointer */
       mmbArray *mamba_array;
-      enum mstro_cdo_attr_value_type type;
-
       s = mstro_cdo_access_mamba_array(incoming[i], &mamba_array);
       if(s!=MSTRO_OK) {
         ERR("Failed to extract mamba array from CDO %s for archiving\n",
@@ -661,10 +658,9 @@ producer_thread_fun(void *closure)
       s = mstro_cdo_attribute_set(outgoing[i],
                                   MSTRO_ATTR_CORE_CDO_RAW_PTR,
                                   outgoing_buffers[i]);
-      uint64_t size = announcement->cdo_size;
       s |= mstro_cdo_attribute_set(outgoing[i],
-                                   ".maestro.core.cdo.scope.local-size",
-                                   &size);
+                                   MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE,
+                                   &announcement->cdo_size);
 
       if(s!=MSTRO_OK) {
         ERR("Failed to add outgoing buffer to CDO %s\n",
@@ -794,10 +790,9 @@ consumer_thread_fun(void *closure)
       s = mstro_cdo_attribute_set(incoming[i],
                                   MSTRO_ATTR_CORE_CDO_RAW_PTR,
                                   incoming_buffers[i]);
-      uint64_t size = announcement->cdo_size;
       s |= mstro_cdo_attribute_set(incoming[i],
-                                   ".maestro.core.cdo.scope.local-size",
-                                   &size);
+                                   MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE,
+                                   &announcement->cdo_size);
 
       if(s!=MSTRO_OK) {
         ERR("Failed to add buffer to CDO %s for consumption\n",
@@ -833,7 +828,7 @@ consumer_thread_fun(void *closure)
       /* extract raw ptr */
       void* rawptr;
       enum mstro_cdo_attr_value_type type;
-      const void* size;
+      const int64_t* size;
       s = mstro_cdo_access_ptr(incoming[i], &rawptr, NULL);
       if(s!=MSTRO_OK) {
         ERR("Failed to extract raw pointer from CDO %s for archiving\n",
@@ -841,8 +836,9 @@ consumer_thread_fun(void *closure)
         abort();
       }
       /* query the size */
-      s = mstro_cdo_attribute_get(incoming[i], "local_size",
-                                  &type, &size); 
+      s = mstro_cdo_attribute_get(incoming[i],
+                                  MSTRO_ATTR_CORE_CDO_SCOPE_LOCAL_SIZE,
+                                  &type, (const void**)&size); 
       if(s!=MSTRO_OK) {
         ERR("Failed to extract local size from CDO %s for archiving\n",
             announcement->cdo_names[i]);
@@ -850,11 +846,11 @@ consumer_thread_fun(void *closure)
       }
 
       /* do some work */ 
-      mvp_checksum(announcement->cdo_names[i], rawptr, *(const uint64_t*)size);
+      mvp_checksum(announcement->cdo_names[i], rawptr, *size);
 
       /* write-out */
       consumer_flush_to_disk(announcement->cdo_names[i],
-                             rawptr, *(const uint64_t*)size);
+                             rawptr, *size);
 
       s = mstro_cdo_dispose(incoming[i]);
       if(s!=MSTRO_OK) {
@@ -970,7 +966,7 @@ int main(int argc, char **argv)
     abort();
   snprintf(announcement_scope_string, 128,
            "scope:\n"
-           "  local_size: %zu", sizeof(struct cdo_announcement));
+           "  local-size: %zu", sizeof(struct cdo_announcement));
 
  /* posts (announces) a work description CDO for all to see */
   mstro_cdo announcement_cdo;
@@ -1032,7 +1028,7 @@ int main(int argc, char **argv)
     free(announcement.cdo_names[i]);
   }
 
-  fprintf(stdout, "Sent %zu CDOs of %zu bytes each from %zu produce to %zu compute and %zu archiving threads\n",
+  fprintf(stdout, "Sent %zu CDOs of %" PRIi64 " bytes each from %zu produce to %zu compute and %zu archiving threads\n",
           announcement.num_entries,
           announcement.cdo_size,
           announcement.num_producers,