abandon this subclassing approach - YAGNI!
 * no longer support positional arguments for steps and stages
 * allow implementing a step's command as method (in addtion to passing in a method in the constructor)
use metaclass to assemble the steps of a stage

this also does away with the base class - YAGNI!
factor the ZFS specific code into separate module
a place for pseudo code