fully working backward compatible datasource