fixup fetcher and registration after reorganise
add async collection fetch