restructure target async structure