Add RemoteStore
Refactor and cleanup