updated driver interface + misc changes