Implement data provider