DataProvider rough implementation. Error handling need to be added.