Add DataContainer class. The new idea is that DataContainers hold pointers to providers and requests data fetches