rewrite router async logic

maybe we don't need this block?