rework provider architecture
rework OAuth to add common code in AuthProvider
rework : one place to send data to user