Updated login function