refactor BatchOperations