Separated data source logic