rewrite router async logic

maybe remove this too?