More work on data provider interface