This document discusses cleaning up Android architecture using Architecture Components. It begins with an overview of issues with previous approaches like callbacks between layers. It then covers how each component addresses these issues: ViewModel/LiveData for presentation, MediatorLiveData for merging repository calls in the domain layer, and Room/Paging Library for the data layer. Considerations are provided for each component regarding threading, lifecycles, and other best practices. Code examples demonstrate implementations across the layers following these guidelines.