diff --git a/maestro/attributes.c b/maestro/attributes.c
index 128fe04541872ba6065e0750bb0b923015e1397b..ab5e2cddd43cab98bb1d3ae9959862315b4adc84 100644
--- a/maestro/attributes.c
+++ b/maestro/attributes.c
@@ -92,9 +92,6 @@ const char *MSTRO_ATTR_CORE_CDO_ISDISTRIBUTED =
 const char *MSTRO_ATTR_CORE_CDO_DIST_LAYOUT =
       ".maestro.core.cdo.dist-layout";
 
-const char *MSTRO_ATTR_CORE_CDO_DIST_LAYOUT =
-      ".maestro.core.cdo.dist-layout";
-
 /* .... */
 
 
diff --git a/maestro/pool_manager_registry.c b/maestro/pool_manager_registry.c
index e23fa556e73bf7c907d8d47d1d31a60c12864614..9439e041c63f6af13abc6c24961806ab4a1057da 100644
--- a/maestro/pool_manager_registry.c
+++ b/maestro/pool_manager_registry.c
@@ -231,7 +231,6 @@ mstro_pm_app_register(struct mstro_endpoint *ep,
   e->component_name = strdup(component_name);
   e->component_index = component_index;
 
-
   DEBUG("Registered app %" PRIappid " for %s:%" PRIu64 " with transport methods %p\n",
        e->appid, e->component_name, e->component_index, e->transport_methods);
 
@@ -1700,6 +1699,62 @@ mstro_pm_cdo_registry_find(mstro_app_id app, const struct mstro_cdo_id *id)
     return MSTRO_FAIL;
 }
 
+mstro_status
+mstro_pm_cdo_registry_store_dist_layout(struct cdo_handle_entry *e,
+                                        Mstro__Pool__Attributes *attributes)
+{
+  mstro_status status = MSTRO_OK;
+  size_t n = attributes->kv_map->n_map;
+  /*declare and init all dist layout variables */
+  bool dist = false;
+  size_t *offsets = NULL;
+  size_t *sizes = NULL;
+  size_t element_size_bytes = 0;
+  size_t index = -1;
+  size_t n_blocks = 0;
+  int n_req_attribs = 0;
+  mmbLayout *dist_layout;
+
+  DEBUG("looking for distributed layout among %d attributes \n", n);
+  const char *key;
+  for(size_t i=0; i<n; i++) {
+     key = attributes->kv_map->map[i]->key;
+     ERR("key len: %d (%s)\n", strlen(key), key);
+     if(strcmp(key,".maestro.core.cdo.isdistributed")==0) {
+       dist = attributes->kv_map->map[i]->val->bool_;
+       ERR("dist = %d \n", dist );
+     } else if(strcmp(key,".maestro.core.cdo.dist-layout")==0) {
+       ERR("DIST Layout found ... \n\n\n");
+       size_t n = (size_t) attributes->kv_map->map[i]->val->mmblayout->irregular->n_blocks;
+       ERR("layout type %d \n ", attributes->kv_map->map[i]->val->mmblayout->type);
+       ERR("layout index %"PRIu64" \n ", attributes->kv_map->map[i]->val->mmblayout->index);
+       ERR("nblocks %zu \n", n);
+       for (size_t k = 0; k < n; k++) {
+         ERR("offsets[%zu] = %"PRIu64", lengths[%zu] = %"PRIu64" \n", k,
+                                                        attributes->kv_map->map[i]->val->mmblayout->irregular->offsets[k],
+                                                        k,
+                                                        attributes->kv_map->map[i]->val->mmblayout->irregular->lengths[k]);
+       }
+       n_req_attribs++;
+     }
+   }
+
+  if(dist)
+  {
+    ERR("DIST CDO !!!!!! \n\n\n\n");
+    if (n_req_attribs != 2)
+    {
+      ERR("Found only %d out of 2 required dist attributes", n_req_attribs);
+    }
+
+  }
+  else {
+    ERR("NOT DIST CDO !!!! \n\n\n");
+  }
+
+  return status;
+}
+
 mstro_status
 mstro_pm_cdo_registry_store_attributes(const struct mstro_cdo_id *cdo_id,
                                        mstro_app_id app_id,