further abstracted registration functions so you can pass in different "users" in the tests