This document discusses improving table view data sources by implementing the single responsibility principle and using combinators. It outlines problems with traditional approaches where view controllers handle data sources and cells. The author advocates defining base data source classes that provide minimal functionality and combining them to add dynamic behaviors like filtering, reordering and indexing. Implementing this approach removes duplicate code, allows changing behavior through combinators, and makes data sources reusable across views. Examples of combinators that could be implemented are provided.