driver logic