diff --git a/model_server/extensions/chaeo/products.py b/model_server/extensions/chaeo/products.py
index c9acc1fd023ea28b164cb78f42a08b81f8c14e73..82699fb20ab30ec1f29e5e749d09897004cdbf88 100644
--- a/model_server/extensions/chaeo/products.py
+++ b/model_server/extensions/chaeo/products.py
@@ -57,23 +57,13 @@ def write_patch_to_file(where, fname, yxcz):
         raise Exception(f'Unsupported file extension: {ext}')
 
 
-def get_patch_masks(roiset, pad_to: int = 256) -> MonoPatchStack:
 
+def get_patch_masks(roiset, pad_to: int = 256) -> MonoPatchStack:
     patches = []
-    for mi in roiset.zmask_meta:
-        sl = mi['slice']
-
-        rbb = mi['relative_bounding_box'] # TODO: call DF rbb fields
-        x0 = rbb['x0']
-        y0 = rbb['y0']
-        x1 = rbb['x1']
-        y1 = rbb['y1']
-
-        sp_sl = np.s_[y0: y1, x0: x1, :, :]
-
-        h, w = roiset.acc_raw.data[sl].shape[0:2]
-        patch = np.zeros((h, w, 1, 1), dtype='uint8')
-        patch[sp_sl][:, :, 0, 0] = mi['mask'] * 255
+    for ob in roiset.get_df().itertuples('Roi'):
+        sp_sl = roiset.get_rel_slice_at(ob.Index)
+        patch = np.zeros((ob.ebb_h, ob.ebb_w, 1, 1), dtype='uint8')
+        patch[sp_sl][:, :, 0, 0] = roiset.get_mask_at(ob.Index) * 255
 
         if pad_to:
             patch = pad(patch, pad_to)
@@ -82,7 +72,7 @@ def get_patch_masks(roiset, pad_to: int = 256) -> MonoPatchStack:
     return MonoPatchStack(patches)
 
 
-def export_patch_masks_from_zstack(roiset, where: Path, pad_to: int = 256, prefix='mask') -> list:
+def export_patch_masks(roiset, where: Path, pad_to: int = 256, prefix='mask') -> list:
     patches_acc = roiset.get_patch_masks(pad_to=pad_to)
 
     exported = []
diff --git a/model_server/extensions/chaeo/zmask.py b/model_server/extensions/chaeo/zmask.py
index b70afeb3939d3d9e20cd6962d29ec76eaede6d8f..2cef8230ad1a4ed334d3d922dc003bca1a2f1f96 100644
--- a/model_server/extensions/chaeo/zmask.py
+++ b/model_server/extensions/chaeo/zmask.py
@@ -18,7 +18,7 @@ from model_server.extensions.chaeo.products import export_patches_from_zstack, e
 from extensions.chaeo.params import RoiFilter, RoiSetMetaParams, RoiSetExportParams
 from model_server.extensions.chaeo.accessors import MonoPatchStack
 from model_server.extensions.chaeo.process import mask_largest_object
-from model_server.extensions.chaeo.products import get_patches_from_zmask_meta, get_patch_masks, export_patch_masks_from_zstack
+from model_server.extensions.chaeo.products import get_patches_from_zmask_meta, get_patch_masks, export_patch_masks
 
 
 def get_label_ids(acc_seg_mask):
@@ -188,7 +188,7 @@ class RoiSet(object):
         return get_patch_masks(self, **kwargs)
 
     def export_patch_masks(self, where, **kwargs) -> list:
-        return export_patch_masks_from_zstack(self, where, **kwargs)
+        return export_patch_masks(self, where, **kwargs)
 
     def get_raw_patches(self, channel):
         return get_patches_from_zmask_meta(