modify builder pattern