fixed data source callback