fixed the fourth kernel and drive by merging the device functions