added builder pattern example