draft for datasource api