Separated out data provider interface