refactoring sync clients, adding other storage options