Answer pending. Please hold on. I see you've identified the following problems: 1. Repository layer sends raw data from the network api to the ViewModel forcing VM to do transformation and formatting making VM hard to test 2. A "God Repository" that is referenced in a large number of places throughout the codebase 3. Data transformation logic varies across different consumers (ViewModels), so there’s no single, consistent transformation