builder pattern committed