changed abstract driver interface to driver interface, some bug fixes