The pull request with all the code.

why no factories for this class, but factories to user?  moving this to a factory will significantly dry it up, and you can use the `let` syntax above that is used for `user1`