Refactoring ModificationCommandBatch to improve extensibility