re-structure the workflow