some work on sign-in-out(not ready yet)