Adopt data source pattern