builder pattern commit