commit before dividing the driver into submodules