more robust data fetching