added async IPC to driver.c