restructuring the driver