updated datasource functions