fix driver implementation