Refactoring ModificationCommandBatch to improve extensibility

Really needed?