change the remote provider to a singleton pattern