adding code for builder pattern