I assume you meant only the "if" block?
When the if(decorate) ... is moved to run() then createWalk does nothing more than calling the super.createWalk and can be removed from here. Don't know if I understood you correctly.