test
finish login function