diff --git a/include/maestro/i_pool_manager_registry.h b/include/maestro/i_pool_manager_registry.h
index 05780aa324a2b426e980ccd0c6de6776f07d363e..5b3ae049d330f43448bccce2d67e3cc55cc01498 100644
--- a/include/maestro/i_pool_manager_registry.h
+++ b/include/maestro/i_pool_manager_registry.h
@@ -324,6 +324,39 @@ mstro_pm_candidates_destroy(mstro_pm_candidates *candidates);
 
 
 
+
+/** Convert the mapping between two distributed layouts found by mmb_layout_compute_intersection
+  * to a list of candidates (apps, local cdo-ids, offsets, lengths) that satisfy
+  * the requested distribution from a different source distribution.
+  * Return MSTRO_OK on success.
+**/
+static inline
+mstro_status
+mstro_pm__mmbLayoutIntersecton_to_candidates(
+                            mmbLayoutIntersection *intersection,
+                            size_t dst_index,
+                            mmbLayout *src_layout,
+                            struct per_app_cdo_entries *app_to_attributes_table,
+                            mstro_pm_candidates **candidates);
+
+/** Find an offered distributed cdo with the required exact layout
+  * (including index),i.e., 1:1 mapping
+**/
+static inline
+mstro_status
+mstro_pm__find_cdo_with_layout(
+                          struct per_app_cdo_entries *app_to_attributes_table,
+                          mmbLayout *s_layout,
+                          struct per_app_cdo_entries **app,
+                          uint64_t *local_id);
+
+
+/** Destroy mstro_pm_candidates **/
+static inline
+mstro_status
+mstro_pm_candidates_destroy(mstro_pm_candidates *candidates);
+
+
 /**@} (end of group MSTRO_I_PM_Registry) */
 /**@} (end of group MSTRO_Internal) */