Add builder pattern