Added Builder Pattern implementation