complete data source logic
merge