Refactoring ModificationCommandBatch to improve extensibility

Seems more readable than () => null and should perform better