driver initialization