Runs and cache network queries for the UI. In the model-view-controller pattern, this class acts like the controller. Its purpose is to keep the UI code as decoupled as possible from the API used to query it. It encapsulate the asynchronous code and provide a simpler API to the UI.