refactored to a single controller for all providers
refactored to a single controller for all providers