add builder pattern demo