Design pattern used in Eventide's Useful-Objects style: the instance-level initializer is kept primitive and mechanically correct (it records raw values, its default dependencies are diagnostic substitutes), while convenience and operational concerns move to class-level factory methods like `build(user)`. The class interface (`SignUp.build(user)`) is the 'convenience' / operational interface and wires up real dependencies; the instance interface (`SignUp.new(username, password)`) is the mechanical / diagnostic interface and yields a test-friendly object with mimic defaults. Separating the two lets designers avoid mixing convenience needs into the initializer.