finally added authentication with multiple providers