refactored a base class in preparation for adding stepper support