Add a data source factory