TADA. Implemented in-memory object cloning without the need for serialization. We no longer need hydrate() and rehydrate() methods on Step. Step does now implement Cloneable and the ONLY step that needs to override that method is AbstractStep to make sure the ExapandableStepIterator is not shared amongst the clones. Easy peasy lemon squeezy.