add IDataProvider and remove unused classes