refactoring
refactoring, now can use different Step classes