public Step adopt() {
        Step step = pollLast();
        synchronized (LOCK) {
            getLast().getSteps().add(step);
        }
        return step;
    }
public Step adopt ( ) { Step step = pollLast ( ) ; synchronized ( LOCK ) { getLast ( ) . getSteps ( ) . add ( step ) ; } return step ; }
Move last step to children of previous step. How it works:
<pre>
before: step1(...) -> step2(child1 -> ... -> childN) -> step3(...) -> ... -> null
after:  step2(child1 -> ... -> childN -> step1(...)) -> step3(...) -> ... -> null
</pre>
@return ex-last step