Added Builder pattern