Refactor Sync architecture: separate repository and adapter classes
(cleanup/DRY to follow)