change structure of DataProvider class hierarchy