diff --git a/environment.yaml b/environment.yaml
index aeb5ea7be91282b1757473af95b261d0cdf80813..a6a862298b33629f37bb4a455d284b078342a0fc 100644
--- a/environment.yaml
+++ b/environment.yaml
@@ -16,3 +16,4 @@ dependencies:
     - scikit-learn
     - vigra
     - z5py
+    - mahotas
diff --git a/mmpb/extension/attributes/morphology.py b/mmpb/extension/attributes/morphology.py
index 24d98934bc06fd68767bbb87b80fbb118b6b59d6..e8d9be95c4feede626343e1897851e63503c375f 100644
--- a/mmpb/extension/attributes/morphology.py
+++ b/mmpb/extension/attributes/morphology.py
@@ -36,11 +36,11 @@ class MorphologyBase(luigi.Task):
     # if the raw path is None, we don't compute intensity features
     raw_path = luigi.Parameter(default=None)
     # we always need the nucleus segmentation
-    nucleus_segmentation_path = luigi.Paramter()
+    nucleus_segmentation_path = luigi.Parameter()
     # we only need the cell segmentation if we compute cell morphology features
     cell_segmentation_path = luigi.Parameter(default=None)
     # we only need the chromatin segmentation if we compute nucleus features
-    chromatin_segmentation_path = luigi.Paramter(default=None)
+    chromatin_segmentation_path = luigi.Parameter(default=None)
 
     # the scale used for computation, relative to the raw scale
     scale = luigi.IntParameter(default=3)
@@ -49,8 +49,8 @@ class MorphologyBase(luigi.Task):
     # nucleus mapping table and the region mapping table
     in_table_path = luigi.Parameter()
     # only need the mapping paths for the nucleus features
-    nucleus_mapping_path = luigi.Paramter(default=None)
-    region_mapping_path = luigi.Paramter(default=None)
+    nucleus_mapping_path = luigi.Parameter(default=None)
+    region_mapping_path = luigi.Parameter(default=None)
 
     # prefix for the output tables
     output_prefix = luigi.Parameter()
diff --git a/mmpb/extension/attributes/workflow.py b/mmpb/extension/attributes/workflow.py
index 741c906acc74946aea2739e2e4e595f483130ce0..c3ca4d334ba870accef4dc69a43c396d52e67924 100644
--- a/mmpb/extension/attributes/workflow.py
+++ b/mmpb/extension/attributes/workflow.py
@@ -43,11 +43,11 @@ class MorphologyWorkflow(WorkflowBase):
     # if the raw path is None, we don't compute intensity features
     raw_path = luigi.Parameter(default=None)
     # we always need the nucleus segmentation
-    nucleus_segmentation_path = luigi.Paramter()
+    nucleus_segmentation_path = luigi.Parameter()
     # we only need the cell segmentation if we compute cell morphology features
     cell_segmentation_path = luigi.Parameter(default=None)
     # we only need the chromatin segmentation if we compute nucleus features
-    chromatin_segmentation_path = luigi.Paramter(default=None)
+    chromatin_segmentation_path = luigi.Parameter(default=None)
 
     # the scale used for computation, relative to the raw scale
     scale = luigi.IntParameter(default=3)
@@ -56,15 +56,15 @@ class MorphologyWorkflow(WorkflowBase):
     # nucleus mapping table and the region mapping table
     in_table_path = luigi.Parameter()
     # only need the mapping paths for the nucleus features
-    nucleus_mapping_path = luigi.Paramter(default=None)
-    region_mapping_path = luigi.Paramter(default=None)
+    nucleus_mapping_path = luigi.Parameter(default=None)
+    region_mapping_path = luigi.Parameter(default=None)
 
     # minimum and maximum sizes for objects / bounding box
     min_size = luigi.IntParameter()
     max_size = luigi.IntParameter(default=None)
     max_bb = luigi.IntParameter()
 
-    output_path = luigi.Paramter()
+    output_path = luigi.Parameter()
 
     def requires(self):
         out_prefix = os.path.join(self.tmp_folder, 'sub_table_%s' % self.prefix)