add login function