add signin-out function