Make a provider responsible for keeping track of its own remote structure
Refactor fetch syntax