new component fetcher