login function updated