added external password providers support