use a factory for getting data provider plugins