provider initialization is moved to SwitchUser::Provider

cleans up SwitchUser
move provider operation closer to the providers