diff --git a/extensions/chaeo/accessors.py b/extensions/chaeo/accessors.py
index 47f33a1912ef2de6cf1835c6e84ce705cec91611..5d2987faabe5d341b9c23193d0ce32b2f4fa56d0 100644
--- a/extensions/chaeo/accessors.py
+++ b/extensions/chaeo/accessors.py
@@ -16,8 +16,8 @@ class MonoPatchStack(InMemoryDataAccessor):
             assert data.ndim == 3
             self._data = np.expand_dims(data, 2)
         elif isinstance(data, list): # list of YX patches
-            nda = np.array(data)
-            assert nda.squeeze().ndim == 3
+            nda = np.array(data).squeeze()
+            assert nda.ndim == 3
             self._data = np.expand_dims(
                 np.moveaxis(
                     nda,
diff --git a/extensions/chaeo/process.py b/extensions/chaeo/process.py
index 368f254b00d318db0d88e44ec83836e85029b349..9b736c23c1421ab72aeefcb61f14e11278144ce6 100644
--- a/extensions/chaeo/process.py
+++ b/extensions/chaeo/process.py
@@ -16,6 +16,12 @@ def mask_largest_object(
     """
     binary = img > 0
     ob_id = label(binary)
+    # separate problem for mask and object maps
+
+    # import skimage
+    # from pathlib import Path
+    # where = Path('c:/Users/rhodes/projects/proj0011-plankton-seg/tmp')
+    # skimage.io.imsave(where / 'raw.png', img)
     num_obj = len(np.unique(ob_id)) - 1
     if num_obj > max_allowed:
         raise TooManyObjectError(f'Found {num_obj} objects in frame')
diff --git a/extensions/chaeo/workflows.py b/extensions/chaeo/workflows.py
index e988b84c6c60655faaf5bd0aa2e4be42cf3d99ae..ce7714d74df1c39fd97c616911620e9be3c6ebfe 100644
--- a/extensions/chaeo/workflows.py
+++ b/extensions/chaeo/workflows.py
@@ -273,14 +273,21 @@ def infer_object_map_from_zstack(
     for ii in range(0, len(zmask_meta)):
         mi = zmask_meta[ii]
         object_label_id = mi['info'].label
-        result_label_map = result_acc.iat(ii)
+        result_label_map = mask_largest_object(result_acc.iat(ii))
         assert result_label_map.ndim == 2
         unique_values = np.unique(result_label_map)
-        assert len(unique_values) == 2
+        if not len(unique_values) == 2:
+            mask_largest_object(result_label_map)
+            raise Exception()
         assert unique_values[0] == 0
         ii_mask = object_labels_map == object_label_id
         object_labels_map[ii_mask] = unique_values[1]
-        patch = patches_acc.iat(ii)
+        # object_labels_map[ii_mask] = np.unique(
+        #     mask_largest_object(
+        #         result_acc.iat(ii)
+        #     )
+        # )[1]
+        # patch = patches_acc.iat(ii)
 
     write_accessor_data_to_file(
         Path(output_folder_path) / 'obj_classes_' / (fstem + '.tif'),