non-destructive make
ensure that make doesn't irreversibly alter underlying subcomponents so that you can call make() multiple times in a row.
ensure that make doesn't irreversibly alter underlying subcomponents so that you can call make() multiple times in a row.