update inner async message passing logic