Adds user sign up functionality and tests