extract mutation from generation method
factory methods should not have side effects.

Move model mutation to the methods that are called on the model.