fix login function