add user login function
merge