Introduce BatchableOperationStep plus some refactoring