better structure - provider moved