optimize firstFetch