Using concurrency and singletons for image and data fetching