add d12_init and d12_disconnect function