data provider interface and test data provider implementation