generalized driver