added spinx documentation
replaced inheritance of data provider with delegation