Added a builder pattern