fix user sign-up bug and finish this feature