How come adding `block_update` requires refactoring `CompoundStep`?