Repository abstraction for various storages