implements weak user sign in model