refactoring univariate steps to be more extensible